it-swarm.com.de

warum bekomme ich "Ungültiger appsecret_proof im API-Argument"

Seit der letzten Änderung bei Facebook bezüglich des appsecret_proof: https://developers.facebook.com/docs/reference/api/securing-graph-api/ , können wir immer noch keine Leistungsberichte herunterladen, auch nachdem Deaktivieren Sie Funktionen in den erweiterten Einstellungen in unserer App oder wenden Sie den Code wie in dem Dokument beschrieben an.

Wir erhalten ständig diesen Fehler:

{"error": {"message": "Ungültiger appsecret_proof im API-Argument enthalten", "type": "GraphMethodException", "code": 100}}

und ich habe einen vertraulichen Bug geöffnet, aber niemand kehrt mit einer Antwort zu mir zurück.

Ich weiß wirklich nicht was wir noch versuchen könnten? 

37
user1508682

Der Fehler ist (meiner Erfahrung nach) fast sicher richtig; es bedeutet, dass Sie mit Ihrem API-Aufruf einen ungültigen appsecret_proof beweisen

Angenommen, Sie verwenden das Standard-SDK PHP ohne Änderungen. Die wahrscheinlichsten Gründe dafür sind:

  • Sie haben die falsche App-ID im SDK-Code konfiguriert
  • Sie haben das falsche Anwendungsgeheimnis im SDK-Code konfiguriert
  • Sie versuchen, ein Zugriffstoken aus der falschen/anderen App zu verwenden
42
Igy

Eine weitere mögliche Ursache für den Fehler "Invalid appsecret_proof ..." ist ein Benutzerzugriffstoken, das keiner App zugeordnet ist. Wenn Sie mit dem Diagramm-Explorer ein Benutzerzugriffstoken erstellen, müssen Sie in der Dropdown-Liste oben rechts eine App auswählen. Andernfalls generieren Sie Token, die nur im Diagramm-API-Explorer funktionieren.

Ich habe einen Fehler gemeldet mit dem Python SDK, bevor ich meinen Fehler fand. GUIs sind der Teufel.

17
Dan Ross

Es gibt einen Fehler im Facebook SDK. Nachdem ich 20 Stunden lang alles versucht hatte, um meinen eigenen Code zu debuggen (der keine Probleme hatte!), Kommentierte ich das in base_facebook.php:

/* Commented out by SJ 
    if (isset($params['access_token'])) {
      $params['appsecret_proof'] = $this->getAppSecretProof($params['access_token']);
    }
*/

Und alle Probleme gingen weg!

10
MrMoxy

Kein Fehler in der neuesten Version des facebook PHP SDK . Sie müssen appsecret_proof gemäß den Dokumenten erstellen:

$appsecret_proof= hash_hmac('sha256', $access_token, $app_secret);

Übergeben Sie es dann als Parameter an Ihren API-Aufruf.

Die Dokumente finden Sie hier: https://developers.facebook.com/docs/graph-api/securing-requests/

Nachdem ich das getan hatte, war alles gut und ich musste nicht base_facebook.php hacken

9
user3077584

Dies ist ein Fehler, der auf ein korrektes Token zurückzuführen ist. Möglicherweise verwenden Sie ein anderes Konto zur Konfiguration der Web-App und der mobilen App für die Facebook-Konfiguration. Beide Konten sollten gleich sein.

Die App-ID muss für Ihre mobile App und Ihre Web-App identisch sein.

2
Vineeth Joseph

Dieser Fehler ist das Ergebnis der Einstellung eines falschen Zugriffstokens. Zum Beispiel zum Posten in ein Seitenalbum mit dem Zugriffstoken eines Benutzers (Administrators). Ich habe diesen Fehler fast immer gelöst, indem ich das richtige Zugriffstoken gesetzt habe

1
vinayhudli

Wenn es sich bei diesem Fehler um ein unerwartetes Verhalten handelt, haben Sie möglicherweise eine Einstellung in Ihrer App überprüft, um sie anzufordern. Deaktivieren Sie das Kontrollkästchen und Sie sollten den Fehler nicht mehr erhalten. Diese Einstellung befindet sich in Einstellungen -> Erweitert und heißt "App Secret Proof für Server-API-Aufrufe". Stellen Sie das auf NO.

Ab jetzt befindet sich diese Einstellung auf dieser Seite (stellen Sie sicher, dass Ihre appId in der URL angegeben ist): https://developers.facebook.com/apps/YOUR-APP-ID/settings/advanced/

Beachten Sie, dass dies keine universelle Lösung ist, sondern nur eine Lösung für Personen, die dieses Verhalten nicht möchten.

1
user288926

In meinem Fall musste ich das Default Access Token über die Methode einstellen: setDefaultAccessToken()

Ich habe ein Token verwendet, das mit dem GraphApi-Entwicklertool generiert wurde, aber ich habe nicht in die richtige Anwendung gewechselt. Es wurde gelöst, indem die Anwendung in eine richtige geändert und ein regeneriertes Token verwendet wurde.

0
Zank

Funktioniert bei mir:

$appsecret_proof = hash_hmac('sha256', $facebook_page_token, $app_secret);

WO facebook_page_token ist das in meiner Datenbank gespeicherte Seitentoken, das erstellt wird, wenn ich die Seite der App zuordne.

0
DAVEWV

stellen Sie sicher, dass Ihre Einstellung korrekt ist fbappid + fbappsecret

dieser Fehler tritt auf, wenn diese nicht korrekt eingestellt sind

wie Sie haben 2 Apps eine Entwicklung und eine Produktion

und Sie vermasseln die Codes, überprüfen Sie die beiden

0
Prozi

Nur für Leute, die das gleiche Problem haben. 

Wenn Sie Client OAuth Login auf Facebook "yes" setzen, sollten Sie die richtigen Valid OAuth-Weiterleitungs-URIs angeben. Ansonsten wirft Facebook genau den gleichen Fehler. 

0
Süha Boncukçu

enter image description here Vielleicht ist mit Ihrem Zugriffstoken ein Problem aufgetreten. Sie benötigen den Business Manager-Stil Sie erhalten das Token aus dem Inhalt von https://business.facebook.com/settings/system-users/ {sys_user_id}? business_id = {bussiness_id} mit Regex r'"accessToken":"([\d|\w]+)","context"'

0
Xun Lee

Ich weiß, dass dies eine alte Frage ist, aber ich habe meine gelöst, indem ich die Anwendung in die richtige Anwendung geändert habe, mit der ich ein Zugriffstoken erzeugen sollte. Z.B. von Project1 bis Project2.

0
jDmendiola