it-swarm.com.de

Identifizieren des Facebook Messenger-Benutzers mit der Benutzer-ID aus einem Facebook-Login

Ich probiere die neue Facebook Messenger Platform aus und habe ein Problem.

Wenn ein Benutzer zum ersten Mal mit meinem Bot chattet, möchte ich den sender.id verwenden, um den Benutzer in meiner Datenbank nachzuschlagen und zu überprüfen, ob er Kunde ist oder nicht, und eine maßgeschneiderte UX anzubieten.

Benutzer melden sich über Facebook an meinem Dienst an, aber leider scheint es, dass meine Facebook-ID meiner App und die Facebook-ID meines Bots unterschiedlich sind, da sich die IDs auf App-Bereiche beschränken.

Gibt es eine Möglichkeit, die 2 IDs zu verknüpfen, damit ich einen Benutzer in meiner Datenbank finden kann?

UPDATE (20.04.2016): Wir sind umgekommen, indem wir Benutzer bei der ersten Kontaktaufnahme über den Messenger aufgefordert haben, auf einen Link zu klicken, um sich bei ihrem Konto anzumelden, damit wir ihre messenger_id mit ihrem Konto in unserem verknüpfen können DB.

Wäre fantastisch, wenn Facebook stattdessen PAGE_SCOPED-IDs in den ids_for_business-Endpunkt einfügt.

UPDATE: (01.06.2016): Das neueste Update von Facebook enthält eine neue "Account Linking" -Funktion, die dieses Problem zu lösen scheint. Siehe https://developers.facebook.com/docs/messenger-platform/account-linking

31
Richard O'Brien

Das neueste Update von Facebook enthält eine neue "Account Linking" -Funktion, die dieses Problem zu lösen scheint. Siehe https://developers.facebook.com/docs/messenger-platform/account-linking

8
Richard O'Brien

Ja. Sie können Details wie Vorname, Nachname, Profilbild-URL, Gebietsschema, Zeitzone, Geschlecht von einer API abrufen. Sie müssen nur die Empfänger-ID/Absender-ID und das Acccess_token Ihres Messenger-Bots übergeben.

https://graph.facebook.com/v2.6/USER_ID?fields=first_name,last_name,profile_pic,locale,timezone,gender&access_token=TOKEN
3
Gijo Varghese

Leider ist dies derzeit nicht möglich. Bitten Sie sie, sich für neue Threads anzumelden, um Konten am besten zu verknüpfen.

3
pschang

Ich habe es anders gelöst, aber es funktioniert perfekt mit der Graph-API. Ich lese das Postfach meiner Seite. Wenn also jemand per Messenger-Bot interagieren kann, lese ich die Seiten im Posteingang und durchläuft es.

Schritt 1:

Führen Sie eine HTTP-Abrufanforderung über die Diagramm-API aus. Sie möchten eine PAGE_UNIQUE_ID von der Diagramm-API. 

ANFRAGE ERHALTEN 

https://graph.facebook.com/v2.6/<PAGE_UNIQUE_ID>?fields=conversations.limit(10){participants,updated_time,id}&access_token=<PAGE_ACCESS_TOKEN>

PAGE_UNIQUE_ID Hinweise:

Gehen Sie ===> https://developers.facebook.com/tools/Explorer/ ==> Drücken Sie "Get Token" ===> Wählen Sie die gewünschte Seite aus ===> Abschließend senden. Sie zeigen eine ID bei der Ausgabe ist das hier PAGE_UNIQUE_ID.

Überprüfen Sie im Browser die Antwort.

Schritt 2:

Nachdem Sie die obige http-Anfrage ausgeführt haben, erhalten Sie ein JSON-Objekt, das die letzten 10 Seiten-Konversationen anzeigt, in denen die gewünschte Facebook-ID enthalten ist.

Schritt 3:

Durchlaufen Sie den vollständigen Namen des Benutzers oder verwenden Sie lodash oder Unterstrich nach Ihrer Wahl.

getUserID(response,'Zahid Rahman')


function getUserID(response, fullname) {
  if (response && response.conversations && response.conversations.data) { //Check response is correct
    var conversations = response.conversations.data;                       //Get all conversations
    for (var j = 0; j < conversations.length; j++) {
      var conversationsParticipants = conversations[j].participants.data; 
      for (var k = 0; k < conversationsParticipants.length; k++) {         //Get all particiapnts of a single conversation.

        var conversationsParticipantsEach = conversationsParticipants[k];
        if (conversationsParticipantsEach.name === fullname) {             //Check fullname match or not
          console.log("Desired Facebook User ID : " + conversationsParticipants[k].id);
          return conversationsParticipants[k].id;     
        } 
      }
    }
  }
}

Ich hoffe es wird dir helfen.

2
Zahid Rahman

Wahrscheinlich möchten Sie dies: https://developers.facebook.com/docs/apps/for-business

Sie können alle Benutzer-IDs der App-Bereiche auf Unternehmensebene abrufen.

1
user3268305