Я пытаюсь обновить статус моей страницы (с моей страницы). Мне удалось опубликовать на стене страницы следующий код:
require_once 'facebook-php-sdk/src/facebook.php'; // Create our Application instance. $facebook = new Facebook(array( 'appId' => '...', 'secret' => '...' )); $attachment = array( 'access_token' => "...", 'message'=> "Hello World" ); $facebook->api('/pageId/feed','POST', $attachment);
Но сообщение показывает, что я отправил на страницу свою учетную запись (например, Joe Blogs), где я хочу, чтобы она показывала, что она была отправлена самой страницей (например: Page Name).
Или я не ошибаюсь? Должен ли я пытаться изменить статус страницы (если возможно)?
Любая помощь будет принята с благодарностью.
После многих дней вытягивания волос над этим я, похоже, решил эту проблему. Я объясню:
Причина, по которой мои сообщения приходят от меня, а не из страницы, заключается в том, что access_token, который я использовал, был из моей учетной записи, а не из страницы. Вам нужно будет получить токен доступа с самой страницы.
Это объясняется здесь (http://developers.facebook.com/docs/api#auth) в разделе «Имитация страницы»
Вот как я это сделал.
Вначале я дал разрешение моей учетной записи управлять страницами, которые у меня были с помощью этого URL:
https://graph.facebook.com/oauth/authorize?client_id=...&redirect_uri=...&scope=manage_pages
вам нужно будет вставить client_id с вашим идентификатором приложения и вставить URL-адрес перенаправления. Вы попадете на страницу, которая попросит вас разрешить (что вы должны сказать «да» ðŸ™‚
затем в php я получил доступ к деталям моей текущей учетной записи и страниц, которые я администрирую, с помощью следующего кода:
require_once 'facebook-php-sdk/src/facebook.php'; $facebook = new Facebook(array( 'appId' => '...', 'secret' => '...' )); $attachment2 = array( 'access_token' => "..." //this is my current user access_token ); $page = $facebook->api('/me/accounts', 'get', $attachment2); print_r($page);
Это будет распечатывать информацию о страницах, которые вы администрируете, и access_tokens для этих страниц (бинго!)
вы можете затем взять эти / те access_token (s) и вставить их в код, который я опубликовал выше, и whala – он отправит на вашу страницу с вашей страницы. 🙂
pageID должен быть определен как страница, на которую вы пытаетесь отправить сообщение:
$pageID = "872348971237345"; //obtained from page's url $status = $facebook->api($pageID.'/feed', 'post', $attachment);
Вам нужно добавить UID своей страницы поклонника в ваш ави-звонок.
Я считаю, что это должно быть что-то вроде:
$uid = 'your page id'; $facebook->api('/pageId/feed', 'POST', $attachment, $uid);
Если в вызове не указан UID, по умолчанию пользователь сеанса.