0
var request = FBSDKGraphRequest(graphPath:"/me/friends", parameters: nil);

request.startWithCompletionHandler { (connection : FBSDKGraphRequestConnection!, result : AnyObject!, error : NSError!) -> Void in
    if error == nil {
        println("Friends are : \(result)")
    } else {
        println("Error Getting Friends \(error)");
    }

-----------------------------------私のログ-------------- ------------

Friends are : {
    data =     (
    );
    summary =     {
        "total_count" = 714;
    };
}

このアプリを使用しているユーザーの Facebook の友達を取得するにはどうすればよいですか。助けてください。どんな助けでも感謝します。よろしくお願いします。

4

4 に答える 4

1

これらを許可しないため、Facebookからすべての友達を直接取得することはできません。ただし、次のことを行うことはできますが、その友達のFacebook IDを取得することはできません.名前とプロフィール写真しか取得できません.

注: taggable_friends を使用するには、Facebook から承認を得る必要があります。

var request = FBSDKGraphRequest(graphPath:"/me/taggable_friends", parameters: nil);

許可が正常に付与されているかどうかを以下のように確認する必要があります。その後、友達リストを確認できます。

if (FBSession.activeSession.state == FBSessionStateOpen
            || FBSession.activeSession.state == FBSessionStateOpenTokenExtended)
        {
            [self loadFacebookFriends];
        }
        else
        {
            [FBSession openActiveSessionWithReadPermissions:@[@"public_profile,email,user_friends"] allowLoginUI:YES completionHandler:
             ^(FBSession *session, FBSessionState state, NSError *error)
             {
                 if (!error)
                 {
                     if (state == FBSessionStateOpen)
                     {
                         [FBSession setActiveSession:session];

                         [self loadFacebookFriends];

                     }
                     else
                     {
                         NSLog(@"Status :%ld",(unsigned long)state);
                     }
                 }
                 else
                 {
                     // Could not connect
                 }
             }];
        }
-(void)loadFacebookFriends
{
    // SEND REQUEST FOR FRIEND LISTs
    FBRequest* friendsRequest = [FBRequest requestForGraphPath:@"/me/friends"];
    [friendsRequest startWithCompletionHandler: ^(FBRequestConnection *connection,NSDictionary* result,NSError *error)
     {
         [appDelegate activityHide];

         if (error)
         {
             return ;
         }

         NSArray* friends = [result objectForKey:@"data"];
         NSLog(@"Found: %lu friends", (unsigned long)friends.count);
     }];
}

**注 : iOS 9 を使用している場合は、info.plist でアプリに次の権限を付与する必要があります。このリンクを参照することもできます https://developers.facebook.com/docs/ios/ios9 **

info.plist に以下のトランスポート セキュリティを追加します。

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>graph.facebook.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSExceptionRequiresForwardSecrecy</key>
            <false/>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
        <key>facebook.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSExceptionRequiresForwardSecrecy</key>
            <false/>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
        <key>fbcdn.net</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
        <key>akamaihd.net</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
    </dict>
</dict>
<key>LSApplicationQueriesSchemes</key>
<array>
    <string>fbapi</string>
    <string>fbapi20130214</string>
    <string>fbapi20130410</string>
    <string>fbapi20130702</string>
    <string>fbapi20131010</string>
    <string>fbapi20131219</string>
    <string>fbapi20140410</string>
    <string>fbapi20140116</string>
    <string>fbapi20150313</string>
    <string>fbapi20150629</string>
    <string>fbauth</string>
    <string>fbauth2</string>
    <string>fb-messenger-api20140430</string>
    <string>fb-messenger-platform-20150128</string>
    <string>fb-messenger-platform-20150218</string>
    <string>fb-messenger-platform-20150305</string>
</array>
于 2015-09-30T13:26:37.923 に答える
0

最新の FB SDK では、アプリを使用していない Facebook の友達を取得するためのアクセスは許可されません。あなたのアプリを使用している友達だけのリストを取得します。

于 2015-09-30T12:28:59.770 に答える
0

もう1つのことは、私が許可を得ていなかったことです。助けてくれてありがとう。

于 2015-10-01T11:37:34.517 に答える