it-swarm.com.de

Ein einfaches Beispiel, um über PHP auf einer Facebook-Fanpage zu posten?

Ich habe viel gesucht und veraltete Tutorials gefunden, die nicht funktionieren ...

Ich habe eine Website mit PHP erstellt und wenn ich ein bestimmtes Formular in meinem Admin-Bereich übermittle, möchte ich auf meiner Facebook-Fan-Seite veröffentlichen.

Es ist kein RSS verfügbar. Haben Sie also ein Beispiel, um direkt auf der Facebook-Fan-Seite (keine Benutzerwand) mit PHP-SDK zu posten?

Vielen Dank!

41
nmarti

Nach vielen Tests funktionierte es schließlich ohne das PHP SDK. Dies ist die Schritt für Schritt Anleitung:

1. Erhalte Berechtigungen und das Seitentoken

Gehen Sie zu https://developers.facebook.com/tools/Explorer/ und wählen Sie Ihre App aus dem ersten Dropdown-Menü links aus.

Klicken Sie auf die Schaltfläche "Zugriffstoken abrufen". Klicken Sie im Fenster "Berechtigungen auswählen" auf "Erweiterte Berechtigungen", und überprüfen Sie "manage_pages" und "publish_stream". Klicken Sie anschließend auf die blaue Schaltfläche "Zugriffstoken anfordern".

Möglicherweise werden Sie in diesem Schritt gebeten, Ihrer App die Berechtigung zum Zugriff auf Ihr Facebook-Konto zu erteilen, zu akzeptieren.

Klicken Sie anschließend am Ende des Textfelds neben der Dropdown-Liste "GET" auf, ersetzen Sie die Zahlen für: me/accounts und klicken Sie auf die blaue Schaltfläche neben diesem Textfeld.

Sie erhalten die Token für alle Ihre Seiten, einschließlich Ihrer App-Seite. Finden Sie Ihren Seitennamen in der Liste und sehen Sie so aus: "Name": "Ihr Seitenname"

Wenn Sie Ihre Seite gefunden haben, kopieren Sie das Zugriffstoken für die Seite (wird sehr lang). Dies kann folgendermaßen aussehen: "access_token": "XXXXXXXX". Kopieren Sie auch die ID der Seite: "id": "XXXXX".

Das ist alles für diesen Schritt, wir können jetzt mit dem Programmieren beginnen.

2. Posten Sie Ihre Seitenwand über PHP.

Für dieses Skript benötigen Sie zunächst einen Server, der curl unterstützt.

Wir starten das Dokument PHP, in dem das Seitenzugriffstoken und die Seitenkennung definiert werden, die wir im ersten Schritt erhalten haben:

<?php
$page_access_token = 'XXXXXXX';
$page_id = 'YYYYYYYY';

Danach erstellen wir ein Array mit den Informationen, die auf unserer Seitenwand veröffentlicht werden sollen:

$data['picture'] = "http://www.example.com/image.jpg";
$data['link'] = "http://www.example.com/";
$data['message'] = "Your message";
$data['caption'] = "Caption";
$data['description'] = "Description";

Sie können natürlich auch einen beliebigen anderen Post-Parameter verwenden, der in https://developers.facebook.com/docs/reference/api/post/ beschrieben ist. Wenn Sie keinen oder viele der oben genannten Parameter benötigen, können Sie dies tun einfach löschen.

Ok, an dieser Stelle fügen wir dem Array das Zugriffstoken hinzu:

$data['access_token'] = $page_access_token;

Und wir setzen unsere Post-URL, um sie auf unserer Seite zu posten:

$post_url = 'https://graph.facebook.com/'.$page_id.'/feed';

Im letzten Schritt werden wir eine Nachricht dazu verwenden, um unsere Nachricht in unserer Seitenwand zu veröffentlichen:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $post_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$return = curl_exec($ch);
curl_close($ch);
?>

Danach können wir unser PHP -Dokument speichern und versuchen, es auszuführen. Der Post kann auf unserer Facebook-Seite erscheinen.

Hoffe, dieser Code hilft anderen Menschen mit dem gleichen Problem!

80
nmarti

Sie können Token mit testen Facebook Access Token Debugger

Arbeitslösung für API v.2.5

  1. Liefert code für app_id als Parameter von response_uri

https://www.facebook.com/dialog/oauth?client_id=".$app_id."&redirect_uri=".$response_uri."&response_type=code&scope=manage_pages,publish_pages

  1. access_token basierend auf code, app_id und app_secret als Ergebnis von response_uri abrufen

https://graph.facebook.com/oauth/access_token?grant_type=authorization_code&client_id=".$app_id."&client_secret=".$app_secret."&code=".$code."&redirect_uri=".$response_uri

  1. Lass niemals page_access_token für page_id basierend auf access_token ablaufen

https://graph.facebook.com/v2.5/".$page_id."?fields=access_token&access_token=".$access_token

4
bq23

Als Ergänzung zu einer kleinen Antwort. Gültig für API v.2.4.

Wenn Sie nicht auf die Facebook-API-Konsole zugreifen möchten, statt API-Aufrufe, gibt es einige Anweisungen.

Zuerst müssen Sie einen Facebook-Benutzer haben, der auf der Seite, die Sie veröffentlichen möchten, Admin ist. Außerdem müssen Sie eine Facebook-App erstellen, um fortfahren zu können.

  1. Anmeldeanforderung, um das Benutzertoken zu erhalten:

https://www.facebook.com/dialog/oauth?client_id=%app-id%&redirect_uri=%your-site-url%&response_type=token&scope=manage_pages,publish_pages

Als Antwort sollten Sie% user-token% erhalten und speichern, was Sie im nächsten Schritt benötigen.

Weiterlesen

  1. Bitte um langlebige Marke:

https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id=%app-id%&client_secret=%app-secret%&fb_exchange_token=%user-token%

Jetzt haben Sie% langlebige Token%, die erforderlich sind, um langlebige Seitentoken zu erhalten.

Weiterlesen

  1. Holen Sie sich jetzt eine Liste Ihrer Facebook-Seiten, 

https://graph.facebook.com/v2.4/%page-admin-user-id%/accounts/?access_token=%long-lived-token%

Suchen Sie in der Liste Ihre Seite und ein Seitentoken. Jetzt können Sie mit dem Posten auf der Seite unter Verwendung von nmarti fortfahren.

Auch Facebook sagt:

Das resultierende Seitenzugriffstoken hat keine Ablaufzeit.

Weiterlesen

2
dikirill

Hier ist die Ressource, nach der Sie suchen . Scrollen Sie nach unten zu Page Login und lesen Sie von dort aus. Dies setzt voraus, dass Sie möchten, dass Ihr Beitrag "von der Seite" erscheint. IE - Posten als ob Sie die Seite wären.

den eigentlichen Aufruf der Grafik-API zum Erstellen eines Post-Objekts und wie dies geschieht, finden Sie unter this url aus der Facebook-Dokumentation. 

0
Lix