2012-04-06 6 views
1

以下は実装できますか?私はFacebookのリストに既にこのアプリケーションを持っているFacebookのすべての友達をユーザーが見ることを可能にするiOSアプリケーションを作成したいと考えています。それはFacebook ConnectまたはGraph APIで達成できますか?私のアプリケーションをインストールしたユーザーのFacebookの友達を知るには?

+0

もちろん可能です) 例えば 'draw something'はまさにそうです。私はあなたにどのように言うことができませんが、私はそれが可能であることを知っています=)悪いこのスレッドをマーク、どのようにも良い答えを読むことを望んで。 –

答えて

4

はい、可能です。

  1. アプリケーションをインストールしたユーザーのデータベースを維持する必要があります。
  2. ユーザーがアプリケーションをインストールすると、APIの1つを使用してFacebookに接続し、ユーザーIDを取得し、ユーザーがアプリケーションをインストールしたことを示すフラグを使用してデータベースに送信します。
  3. そのユーザーの友人IDリストのAPIを使ってFacebookに依頼し、関連付けられたフラグが設定されているIDがあるかどうかをデータベースに尋ねます。
+0

良いアプローチ、+1 – MrTJ

+1

これは、アプリケーションをインストールしたユーザーのローカルデータベースを格納していないアプリケーション(これは最終的には不当に大きい可能性があります)には本当に遅く、新しいユーザーがアプリケーションをインストールすると、ローカルデータベースは変更を記録しません。最良の方法は、グラフAPIに "installed"プロパティを要求することです - http://stackoverflow.com/a/12280544/267814 –

4

Facebookのチュートリアルに従っている場合iOS Tutorial

AppDelegate.mファイルの「facebook」オブジェクトにアクセスする必要があります。その "facebook"オブジェクトはあなたの特定のアプリケーションIDで既に登録されています。 これを使用して、すでにアプリケーションをインストールしている現在のユーザーの友人を照会することができます。ここで

は友人のデータを取得するために、Facebookのクエリです:

NSString *fql = [NSString stringWithFormat:@"Select name, uid, pic_small from user where is_app_user = 1 and uid in (select uid2 from friend where uid1 = %@) order by concat(first_name,last_name) asc", _replace_this_with_the_fb_id_of_the_current_user_ ]; 
+0

これは素晴らしいです、ありがとうございます。ここでは生のFQL --->名前から選択、uid、pic_small is_app_user = 1で、uidは(uid1 = me())友だちからuid2を選択します。concat(first_name、last_name)asc – Joe

0

はい、あなたはGraphAPIを使用して新規のFacebook SDK 3.5およびそれ以上(2013年6月)でそれを行うことができます。 あなたが好きなように...可変配列後で

// The Array for the filtered friends 
NSMutableArray *installedFilteredFriends = [[NSMutableArray alloc] init]; 

// Request the list of friends of the logged in user (me) 
[[FBRequest requestForGraphPath:@"me/friends?fields=installed"] 
startWithCompletionHandler: 
^(FBRequestConnection *connection, 
    NSDictionary *result, 
    NSError *error) { 

    // If we get a result with no errors... 
    if (!error && result) 
    { 
     // here is the result in a dictionary under a key "data" 
     NSArray *allFriendsResultData = [result objectForKey:@"data"]; 

     if ([allFriendsResultData count] > 0) 
     { 
      // Loop through the friends 
      for (NSDictionary *friendObject in allFriendsResultData) { 
       // Check if installed data available 
       if ([friendObject objectForKey:@"installed"]) { 

        [installedFilteredFriends addObject: [friendObject objectForKey:@"id"]]; 
        break; 
       } 
      } 
      } 
     } 
}]; 
0

使用のFacebookのログインをdeviceFilteredFriendsを使用して、ユーザの友人を求めることができます。リクエストされたアプリがインストールされているもののみを取得します(これは、 'installed'フラグを持つすべての友人を返すために使用されます)。

関連する問題