5 Stimmen

Verwenden von PHP5 Curl, um die Facebook Graph API aufzurufen. Verschiedene Server erhalten unterschiedliche Antworten.

Ich habe eine PHP-App, die Curl verwendet, um die Facebook Graph API aufzurufen und Beiträge an die Pinnwand eines Benutzers zu posten. Auf meinem Entwicklungsrechner und unseren Produktionsservern funktioniert es super, aber auf einem QA-Server funktioniert es nicht. Wir erhalten einen vagen Fehlercode 100: "Nachricht fehlgeschlagen" zurück. Soweit ich das beurteilen kann, sende ich von allen Servern die gleichen Informationen.

Hier ist meine Anfrage auf dem Entwicklungsrechner:

Array
(
    [0] => Accept: text/html,application/xhtml+xml,application/xml;q=0.9;q=0.8
    [1] => Accept-Language: en-us,en;q=0.5
    [2] => Accept-Charset: utf-8;q=0.7,*;q=0.7
)
POST: https://graph.facebook.com/me/feed
{
    "message":"meine Nachricht",
    "picture":"http:\/\/server.com\/image.jpeg",
    "link":"http:\/\/server.com\/page",
    "name":"foo",
    "caption":"bar",
    "access_token":"{ACCESS_TOKEN}"
}

Hier ist die Antwort (es funktioniert):

{
   "id": "6705254_873254004878"
}

Hier ist meine Anfrage auf dem QA-Rechner (gleicher ACCESS_TOKEN):

Array
(
    [0] => Accept: text/html,application/xhtml+xml,application/xml;q=0.9;q=0.8
    [1] => Accept-Language: en-us,en;q=0.5
    [2] => Accept-Charset: utf-8;q=0.7,*;q=0.7
)
POST: https://graph.facebook.com/me/feed
{
    "message":"meine Nachricht",
    "picture":"http:\/\/server.com\/image.jpeg",
    "link":"http:\/\/server.com\/page",
    "name":"foo",
    "caption":"bar",
    "access_token":"{ACCESS_TOKEN}"
}

Hier ist die Antwort auf QA (Fehler)

{
   "error": {
      "type": "OAuthException",
      "message": "(#100) Nachricht fehlgeschlagen"
   }
}

Ich habe die tatsächlichen URLs, die wir für Bild und Link senden, entfernt, aber Sie verstehen sicher die Idee :)

Weiß jemand, was ich falsch machen könnte? Es sieht für mich gleich aus....

1voto

Kartik kar2905 Punkte 56

Hallo, ich denke, es handelt sich um ein Problem mit der Website-URL, die in den App-Einstellungen angegeben ist. Facebook erlaubt nur Anfragen von der Domain, die in den Anwendungseinstellungen aufgelistet ist.

1voto

Jehy Punkte 4539

Soweit ich die Facebook-Richtlinie verstanden habe, kann nur ein Client mit einem bestimmten Zugriffstoken autorisiert werden - also sollten Sie ein neues erhalten, bevor Sie posten. Es wurde hier beschrieben: Facebook: "Dieser Autorisierungscode wurde verwendet.","Typ":"OAuthException","Code":100

Also sollten Sie hinzufügen

$access_token = $session->getToken();

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X