2012-04-06 4 views
1

Ist es möglich, Folgendes zu implementieren? Ich möchte eine iOS-Anwendung erstellen, mit der der Benutzer alle seine Facebook-Freunde sehen kann, die diese Anwendung bereits in ihrer Facebook-Liste haben. Ist es erreichbar über Facebook Connect oder Graph API oder vielleicht etwas anderes?Woher weiß ich, welche Facebook-Freunde des Benutzers meine Anwendung installiert haben?

+0

es ist natürlich möglich =) zum Beispiel 'draw something' tut genau das. Ich kann dir nicht sagen, wie, aber ich weiß, dass es möglich ist =) krank markieren diesen Thread, in der Hoffnung, eine gute Antwort auf wie auch zu lesen. –

Antwort

4

Ja, es ist möglich.

  1. Sie müssen Ihre eigene Datenbank pflegen, wer die Anwendung installiert hat.
  2. Wenn ein Benutzer die Anwendung installiert, stellen sie über eine der APIs eine Verbindung mit Facebook her, rufen ihre Benutzer-ID ab und senden sie an die Datenbank mit dem Kennzeichen, dass der Benutzer die Anwendung installiert hat.
  3. Dann fragen Sie Facebook über eine seiner APIs nach der ID-Liste der Freunde dieses Benutzers und fragen Sie dann Ihre Datenbank, ob für eine dieser IDs das entsprechende Flag gesetzt ist.
+0

nice approach, +1 – MrTJ

+1

Dies ist wirklich langsam für Anwendungen, die keine lokale Datenbank von Benutzern speichern, die die Anwendung installiert haben (dies kann unangemessen groß sein), und in jedem Fall ist es ungenau, wenn ein neuer Benutzer die Anwendung installiert und die lokale Datenbank zeichnet die Änderung nicht auf. Die beste Methode ist es, die Grafik-API für die "installierte" Eigenschaft zu fragen - http://stackoverflow.com/a/12280544/267814 –

4

Wenn Sie die Facebook-Tutorial iOS Tutorial gefolgt.

Sie sollten Zugang zu einem "facebook" Objekt in Ihrer AppDelegate.m Datei haben. Dieses "Facebook" -Objekt wurde bereits mit Ihrer spezifischen Anwendungs-ID registriert. Sie können ihn dann verwenden, um nach den Freunden des aktuellen Benutzers zu suchen, die die Anwendung bereits installiert haben.

Hier ist die Facebook-Abfrage Freund Daten abzurufen:

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

Das ist großartig, danke. Hier ist die rohe FQL ---> Wählen Sie den Namen, uid, pic_small von Benutzer, wo is_app_user = 1 und uid in (wählen Sie uid2 von Freund wo uid1 = me()) Reihenfolge von concat (first_name, last_name) asc – Joe

0

Ja Sie es mit der neuen Facebook-SDK 3.5 tun kann und mehr (2013 Juni) mit GraphAPI. Sie können die deviceFilteredFriends änderbaren Array verwenden später, wie Sie wollen ...

// 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

Verwenden Facebook-Login und fragen dann für die Freunde des Benutzers. Sie erhalten nur diejenigen, die die anfragende App installiert haben (es verwendet alle Freunde mit einer 'installierten' Flag)

Verwandte Themen