lordfritte
Lieutenant
- Registriert
- Juli 2006
- Beiträge
- 964
Hallo, ich möchte folgendes Umsetzen: Ich möchte mit der Facebook API auf eine Seite(nicht an eine Pinnwand) posten.
Ich habe mir ein Facebook-Konto(meinen Administrator) angelegt, mit diesem Konto habe ich eine Seite und eine App angelegt.
Ich habe mit der API einen Login durchgeführt(Berechtigungen: manage_pages, publish_actions, read_stream, publish_stream).
login.php
Habe mir den einen long live Accesstoken erzeugt und weggeschrieben.
fb_login.php
Ich habe mir die ID der Seite geholt und weggeschrieben.
und versuche jetzt einen Post auf die Seite zu machen.
post.php
So das ganze läuft auch durch, mit meinem Administrator, oder der Seite selber sehe ich den Post, der Post ist öffentlich, aber andere Benutzer sehen auf der Seite nichts.
Um zu testen ob es an der Seite selber liegt, habe ich über den Browser ein Test-Post erzeugt, dieses ist für alle sichtbar.
Was mache ich falsch? Habe ich was vergessen?
achja, wenn ich mir alle Posts auflisten mit einem GET request, ist der Post da...
facebook.php
EDIT:
Wenn ich versuche, als anderer Benutzer auf den Post zuzugreifen, dann kommt das:
Ich habe mir ein Facebook-Konto(meinen Administrator) angelegt, mit diesem Konto habe ich eine Seite und eine App angelegt.
Ich habe mit der API einen Login durchgeführt(Berechtigungen: manage_pages, publish_actions, read_stream, publish_stream).
login.php
PHP:
require_once 'facebook.php';
FacebookSession::setDefaultApplication($appId, $appSecret);
echo getLoginUrl($appId, $appSecret);
echo getLoginUrl()
Habe mir den einen long live Accesstoken erzeugt und weggeschrieben.
fb_login.php
PHP:
require_once 'facebook.php';
$helper = new FacebookRedirectLoginHelper(getRedirectUrl(), $appId, $appSecret);
FacebookSession::setDefaultApplication($appId, $appSecret);
$session = $helper->getSessionFromRedirect();
$accessToken = $session->getAccessToken();
$longLivedAccessToken = $accessToken->extend();
echo "Token: $longLivedAccessToken";
Ich habe mir die ID der Seite geholt und weggeschrieben.
und versuche jetzt einen Post auf die Seite zu machen.
post.php
PHP:
require_once 'facebook.php';
$accessToken= "..."; //Mein Accesstokem vom Administrator
$pageId = "...";
FacebookSession::setDefaultApplication($appId, $appSecret);
$session = new FacebookSession($accessToken);
//Ich hole mir einen Token für meine Seite
$request = new FacebookRequest($session, 'GET', '/'.$pageId, array('fields' => 'access_token'));
$siteToken = $request->execute()->getGraphObject()->asArray();
$siteToken = $siteToken['access_token'];
//Auf die Seite posten
$params = array(
'access_token' => $siteToken,
'page_id' => $pageId,
'name' => 'Name',
'caption' => 'Überschrift',
'description' => 'Beschreibung',
'message' => 'Nachricht...'
);
$request = new FacebookRequest($session, 'POST', '/'.$pageId.'/feed', $params);
$pagePost = $request->execute()->getGraphObject()->asArray();
echo "<pre>"; var_dump($pagePost); echo "</pre>";
So das ganze läuft auch durch, mit meinem Administrator, oder der Seite selber sehe ich den Post, der Post ist öffentlich, aber andere Benutzer sehen auf der Seite nichts.
Um zu testen ob es an der Seite selber liegt, habe ich über den Browser ein Test-Post erzeugt, dieses ist für alle sichtbar.
Was mache ich falsch? Habe ich was vergessen?
achja, wenn ich mir alle Posts auflisten mit einem GET request, ist der Post da...
facebook.php
PHP:
session_start();
$appId = "...";
$appSecret = "...";
function getRedirectUrl() {
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https" : "http";
return $protocol.'://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['REQUEST_URI']).'/fb_login.php';
}
function getLoginUrl($appId, $appSecret) {
$permissions = array("manage_pages", "publish_actions", "read_stream", "publish_stream");
$helper = new FacebookRedirectLoginHelper(getRedirectUrl(), $appId, $appSecret);
return $helper->getLoginUrl($permissions);
}
EDIT:
Wenn ich versuche, als anderer Benutzer auf den Post zuzugreifen, dann kommt das:
Dieser Inhalt ist derzeit nicht verfügbar
Die von dir ausgewählte Seite kann derzeit nicht angezeigt werden. Es könnte sein, dass diese vorläufig nicht zur Verfügung steht, der von dir verwendete Link abgelaufen ist oder du nicht die erforderliche Genehmigung hast, um die Seite zu betrachten.
Zuletzt bearbeitet: