Ich bin neu in der Integration von Facebook in die Websites, an denen ich arbeite, und versuche, einen langfristigen Zugriffstoken zu erhalten, indem ich den Anweisungen hier folge: https://developers.facebook.com/docs/facebook-login/access- Token/ Auch wenn Sie den Graph API Explorer hier verwenden: https://developers.facebook.com/tools/Explorer/ Ich gebe Folgendes ein und fülle es mit meiner AppID und AppSecret sowie dem aktuellen Token auf, das ich erhalte, wenn ich es erhalte drücke Get Access Token ...
GET/oauth/access_token?
grant_type = fb_exchange_token &
client_id = {app-id} & client_secret = {app-secret} & fb_exchange_token = {kurzlebiges Token}
Ich bekomme die Rückgabe
{"Fehler": "Ungültige Antwort"}
Kann jemand genauer erläutern, was ich möglicherweise falsch mache, oder welche Schritte bei der Beschaffung dieses langfristigen Tokens für Sie hilfreich sind?.
Ich habe versucht zu verfolgen, was in diesem Thread passiert. Facebook-Seitenzugriffstoken - Laufen diese ab? ohne Erfolg. Jede Hilfe wäre sehr dankbar.
Vielen Dank für Ihre Zeit und Ihre Hilfe. Prost,
-Ryan
Sie können den long-lived user token
nicht mit dem Graph API Explorer
erhalten. Sie müssen eine GET
Anfrage stellen an:
https://graph.facebook.com/oauth/access_token?
grant_type=fb_exchange_token&
client_id={app-id}& client_secret={app-secret}& fb_exchange_token={short-lived-token}
Sie können es im Browser überprüfen.
Wenn Sie den page access token
benötigen, können Sie ein never ablaufendes Token haben. Überprüfen Sie die akzeptierte Antwort hier: Was sind die Schritte, um ein langlebiges Token für das Posten auf einer Facebook-Fanseite von einem Server zu erhalten
Also dachte ich mir, ich würde das noch einmal überdenken und die Dokumentation bereitstellen, die ich geschrieben habe und die hoffentlich jemand anderem dabei helfen wird, dies zu erreichen!
ONE. Anwendung erstellen
Erstellen Sie eine Anwendung, die dem Benutzer der Seite zugeordnet ist, auf die Sie Zugriff haben möchten.
ZWEI. Erhalten Sie die erforderlichen Informationen
Nach dem Erstellen einer App sollten wir zwei wichtige Informationen haben:
App-ID: AAAAA (sollte ca. 15 Zeichen lang sein)
App Secret: BBBBB (sollte ca. 32 Zeichen lang sein)
Gehen Sie dazu zu https://developers.facebook.com/tools/Explorer und wählen Sie oben in der Dropdown-Box die richtige Anwendung aus.
Klicken Sie auf "Get Access Token" und erhalten Sie einen "frischen" Token.
Hier müssen Sie die entsprechenden Berechtigungen für den Zweck Ihrer App auswählen.
CCCCC (sollte ~ 200 Zeichen lang sein)
DREI. Holen Sie sich Long Life Token (2 Monate)
Sie sollten dann über die Informationen verfügen, die zum Ausführen der Abfrage erforderlich sind, um ein langfristiges (2-monatiges) Token zu erhalten:
https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id= {app-id} & client_secret = {app-secret} & fb_exchange_token = {kurzlebiges Token}
Ersetzen Sie {app-id}, {app-secret} und {kurzlebiger Token} durch die drei Informationen, die Sie bisher notiert haben.
Sie sollten eine Anfrage wie die folgende erhalten:
Platzieren Sie diese Abfrage in der URL-Leiste eines Internetbrowsers. Sie sollten eine Antwort im folgenden Fenster erhalten:
access_token = DDDDD & expires = 5184000
DDDDD (sollte ~ 200 Zeichen lang sein)
VIER. Test Token (Teil 1)
Wenn Sie den markierten Teil in die Eingabe auf der folgenden Debug-Site eingeben:
https://developers.facebook.com/tools/debug/
Es sollte Ihnen einen Ablauf von ungefähr 2 Monaten geben.
FÜNF. Nicht ablaufendes Seitentoken abrufen
Wenn Sie dieses neue Long-Live-Token zur Kenntnis nehmen, erhalten Sie damit ein Token, das nicht abläuft, es sei denn, die zugehörige Anwendung wurde aus dem Zugriff eines Benutzers entfernt oder gelöscht. Wir verwenden entweder den Seitennamen oder vorzugsweise die Seiten-ID, wenn wir die Anfrage stellen:
Sie können Ihre Facebook-Seiten-ID über Folgendes ermitteln: http://findmyfacebookid.com/ Wir beziehen uns auf Ihre Seiten-ID als EEEEE
https://graph.facebook.com/ {page-id} /? fields = access_token & access_token = {long-live-token}
Sie sollten eine Anfrage wie die folgende erhalten:
https://graph.facebook.com/EEEEE/?fields=access_token&access_token=DDDDD
Dies gibt ungefähr Folgendes zurück: {"access_token": "FFFFF", "id": "131062838468"}
FFFFF (sollte ~ 200 Zeichen lang sein)
SECHS. Test Token (Teil 2)
Nehmen Sie den hervorgehobenen Teil und geben Sie ihn auf der Debug-Seite ein. Sie sollten etwas erhalten, das anzeigt, dass das Token nie abläuft und Sie erfolgreich Ihr Token für nie ablaufende Seiten abgerufen haben.
SIEBEN. Gib mir fünf!
Es tut mir leid für die lange Liste, wie dies erreicht werden kann, aber ich finde es besser, den gesamten Prozess zu beschreiben, anstatt nur einen kleinen Ausschnitt. Lassen Sie mich wissen, wenn Sie dies hilfreich finden oder eine bessere Möglichkeit haben, einen der Schritte auszuführen.
Facebook PHP SDK hat bereits eine Methode implementiert, um ein langlebiges Token mit einem kurzlebigen Token zu erhalten, nachdem die Anmeldung erfolgreich war, und das kurzlebige Token mit einem einfachen Aufruf erhalten
$result = $facebook->setExtendedAccessToken();
wenn $ result null ist, bedeutet dies, dass Sie das langlebige Zugriffstoken erhalten haben.
client-Seite
if (response.status === 'connected') {
{
event.preventDefault();
FB.login(function (response) {
if (response.authResponse) {
var profileId = response.authResponse.userID;
var accessToken = response.authResponse.accessToken;
var e = response.authResponse.accessToken;
document.getElementById('token').innerHTML = e;
var profileName = "";
var pagesList = "";
var isPage = 0;
var type = "fb";
$.ajax({
url: "WebService1.asmx/getlonToken",
type: "POST",
dataType: 'json',
data: '{accessToken:"' + accessToken + '"}',
contentType: "application/json; charset=utf-8",
async: true,
success: function (response) {
accessToken = response.d;
document.getElementById('status').innerHTML = accessToken;
},
error: function (e) {
alert('Error' + e);
}
});
}
}, { scope: 'user_about_me,friends_about_me,user_activities,friends_activities,user_birthday,friends_birthday,user_education_history,friends_education_history,user_events,friends_events,user_groups,friends_groups,user_hometown,friends_hometown,user_interests,friends_interests,user_likes,friends_likes,user_location,friends_location,user_notes,friends_notes,user_photos,friends_photos,user_relationships,friends_relationships,user_relationship_details,friends_relationship_details,user_status,friends_status,user_videos,friends_videos,user_website,friends_website,email,manage_pages,publish_stream,read_stream,read_page_mailboxes,read_insights, read_mailbox' });
}
Serverseite
[WebMethod]
public string getlonToken(string accessToken)
{
var fb = new FacebookClient(accessToken);
dynamic result = fb.Get("oauth/access_token", new
{
client_id = 123,
client_secret = "123fff45",
grant_type = "fb_exchange_token",
fb_exchange_token = accessToken,
scope = "user_about_me,friends_about_me,user_activities,friends_activities,user_birthday,friends_birthday,user_checkins,friends_checkins,user_education_history,friends_education_history,user_events,friends_events,user_groups,friends_groups,user_hometown,friends_hometown,user_interests,friends_interests,user_likes,friends_likes,user_location,friends_location,user_notes,friends_notes,user_photos,friends_photos,user_relationships,friends_relationships,user_relationship_details,friends_relationship_details,user_religion_politics,friends_religion_politics,user_status,friends_status,user_videos,friends_videos,user_website,friends_website,email,manage_pages,publish_stream,read_stream,read_page_mailboxes,read_insights,ads_management"
});
fb.AccessToken = (string)result["access_token"];
return fb.AccessToken;
}
}