2016-08-10 4 views
1

Ich versuche ein Skript zu erstellen, das Daten an eine Facebook-Seite sendet, wenn eine Schaltfläche gesendet wird.Auf einer Facebook-Seite von einer Website mit curl schreiben

Ich habe einen nicht auslaufenden Seitenzugriffstoken erstellt, aber ich bin fest, wie man die URL erstellt. Mehrere Tests in der Grafik api Explorer mich immer geben:

{ 
     "error": { 
     "message": "(#200) The user hasn't authorized the application to perform this action", 
     "type": "OAuthException", 
     "code": 200, 
     "fbtrace_id": "BYNmxVAlESA" 
     } 
    } 

Ich habe versucht, so etwas wie:?

1745650152362669/feed message = Nachricht & access_token = myaccesstoken

und

1745650152362669/feed ? fields = message = Nachricht & access_token = myaccesstoken

sowohl als POST natürlich.

Während ich Berechtigungen für meine App erteilt habe.

Wie können Sie hier sehen:

enter image description here

Dieses Token in einer Stunde abgelaufen ist, so dass ich drücke 'öffnen in in Access-Token-Pool'

enter image description here

und klicken Zugang erweitern Token:

enter image description here

ich Paste wieder, dass Token im api Explorer Graph, aber jetzt ist die Seite nicht mehr ausgewählt: enter image description here

Ist das so, wie es sein soll?

ich den folgenden Code haben, die die Post auf einreichen ausführen soll:

<form> 
    <input type="submit" name="submit"> 
</form> 
<? 

if(isset($_POST['submit'])){ 
    $token = 'mypageaccestoken'; 

    $attachment = array(
    'access_token' => $token, 
    'message' => $contentcr[0]['introtext'], 
    'name' => $contentcr[0]['title'], 
    'link' => $contentcr[0]['alias'].'html', 
    'actions' => json_encode(array('name' => $action_name,'link' => $action_link)) 
    ); 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL,'https://graph.facebook.com/1745650152362669/feed'); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $attachment); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    $result = curl_exec($ch); 
    curl_close ($ch); 
} 

Der obige Code schreiben nichts auf meiner Seite im Moment, kann jemand erklären, was mir fehlt?

+0

Ihnen fehlt die Veröffentlichungsberechtigung. https://developers.facebook.com/docs/graph-api/reference/v2.7/page/feed#publish – CBroe

+0

@CBroe Danke das funktioniert! – twan

Antwort

1

Der Benutzer hat die Anwendung nicht berechtigt, diese Aktion

Dieser Fehler bedeutet, auszuführen, dass Sie die entsprechende Berechtigung fehlen. Sie brauchen publish_pages um (als Seite) zu posten, nicht nur manage_pages.

+0

Alles klar, wo kann ich weitere Berechtigungen hinzufügen? Bei der Erstellung des Seitenzugriffstokens hatte ich nur die Option zu erlauben oder zu verweigern, keine bestimmten Berechtigungen. edit: vergiss, ich sehe, dass es eine Schaltfläche dafür in der Dropdown-Liste unter meinem App-Namen gibt. – twan

+0

Sie haben auch manage_pages, wenn Sie ein Benutzer-Token generieren. Wählen Sie einfach publish_pages zusätzlich aus. – luschn

+0

Ja, es gibt sogar eine separate Funktion, um publish_pages zu autorisieren – luschn

Verwandte Themen