Mit dem Upgrade von Facebook Graph API v1.0 auf v2.0 verwendet Facebook "Anwendungsspezifische Benutzer-IDs", sodass die "ursprüngliche" Benutzer-ID in meinen Apps nicht mehr angezeigt wird.
Ich habe immer die Echtzeit-Updates und Diagramm-API-Aufrufe wie " https://graph.facebook.com/ {postId}/comments " verwendet, um die Benutzeraktivität auf der Facebook-Seite zu analysieren, auf der sich die App befand. Da diese Daten jedoch die ursprüngliche Benutzer-ID enthalten, kann ich die Aktivitäten nicht mehr meinen registrierten Benutzern zuordnen!
Gibt es eine Möglichkeit, die ursprüngliche Facebook-Benutzer-ID von einer Benutzer-ID mit Anwendungsbereich abzurufen? Oder umgekehrt?
BEARBEITEN:
Mit der hier genannten API-Methode habe ich die IDs im Anwendungsbereich für alle meine Benutzer abgerufen: https://stackoverflow.com/a/29154912/3432305 und sie zusätzlich zu der in meiner Datenbank gespeichert alte ID. Immer wenn eine RTU ankam, überprüfte ich für "alte Benutzer", welcher Benutzer diese App-ID hat, und verarbeitete das Update. Zumindest Facebook hat es geschafft, den in den Kommentaren erwähnten Fehler zu beheben ( Facebook-Benutzer-ID von Benutzer-ID mit Anwendungsbereich abrufen ), einige Tage bevor die API v1.0 veraltet war, also für neue Benutzer meiner Apps , es wirkt wie ein Zauber. Bisher...
es gibt keine (einfache/offensichtliche) Möglichkeit, eine echte Benutzer-ID basierend auf einer Benutzer-ID mit Anwendungsbereich zu erhalten.
Aus Ihrem Gespräch zwischen Johannes N.
Kann ich die App-IDs (für Apps, die ich besitze) über die ursprüngliche Benutzer-ID abrufen? das würde auch helfen.
Das Abrufen von App-Scoped-IDs von der ursprünglichen Benutzer-ID ist ganz einfach über Folgendes möglich:
https://graph.facebook.com/v2.0/?ids=http://www.facebook.com/USER_ID&access_token=ACCESS_TOKEN
Sie können fields parameter verwenden, um nur id zurückzugeben:
Der Vorteil von IDs anstelle von IDs , da Sie mehrere IDs abfragen können:
* www kann entfernt werden, um die Anzahl der Zeichen zu minimieren.
Das Abrufen von IDs mit Anwendungsbereich vom Benutzernamen ist ebenfalls einfach:
https://graph.facebook.com/v2.0/?ids=http://www.facebook.com/USERNAME&access_token=ACCESS_TOKEN
Sie können nicht von Scoped zurück zu Real gehen. Am besten konvertieren Sie alle in einen Bereich. Ganz einfach:
https://graph.facebook.com/?ids=REAL_ID&access_token=APP_ID|APP_SECRET
Hier ist ein einfacher Ruby Code, der dies tut:
require 'open-uri'
require 'json'
json = JSON.load(open("https://graph.facebook.com/?ids=#{real_id}&access_token=#{FACEBOOK_APP_ID}|#{FACEBOOK_APP_SECRET}"))
scoped_id = /app_scoped_user_id\/(\d+)\//.match(json[real_id.to_s]['link'])[1]