Facebook PHP SDK v3.1.1 - разместить сообщение на стене страницы как страницу в автономном режиме - PullRequest
1 голос
/ 16 января 2012

Я пытаюсь опубликовать сообщение на стене страницы как саму страницу без подключения какого-либо пользователя.

Пока первая часть работает нормально, но мне нужен подключенный пользователь, чтобы сделать это. Я слышал, что мне нужен удостоверение личности, чтобы сделать это в автономном режиме, но я не знаю, как его получить и как его использовать.

На данный момент мой код:

<code>$facebook = new Facebook(array('appId'  => $appID, 'secret' => $appSecret));
$user = $facebook->getUser();

try 
{
    $pageInfo = $facebook->api("/{$pageID}?fields=access_token");
    if(!empty($pageInfo['access_token'])) 
    {
        $args = array(
            'access_token'  => $pageInfo['access_token'],
            'message'       => $message
        );
        $postID = $facebook->api("/{$pageID}/feed", 'post', $args);
    }
} 
catch (FacebookApiException $e) 
{
    echo '<pre>'; var_dump($e); echo '
'; $ user = null; }

Ответы [ 3 ]

2 голосов
/ 16 января 2012

Вам нужен набор разрешений offline_access, тогда вы можете делать то, что вам нужно. Проверьте это, он покажет вам, что делать: http://eagerfish.eu/using-facebook-off-line-access-to-post-on-users-wall/

1 голос
/ 11 июня 2012

Facebook будет удалять разрешение offline_access, теперь они позволяют использовать access_tokens с долгим сроком действия.

0 голосов
/ 16 января 2012

Использование publish_stream разрешений.

Позволяет вашему приложению публиковать контент, комментарии и лайки в потоке пользователя и в потоках его друзей.С этим разрешением вы можете публиковать контент в ленте пользователя в любое время, не требуя offline_access.Тем не менее, обратите внимание, что Facebook рекомендует модель совместного использования, инициированную пользователем.

Кроме того, чтобы разместить на странице (не пользователя) запрос manage_pages.

var $permissions_needed = 'manage_pages,publish_stream';

Каклогин:

$this->login_url = $facebook->getLoginUrl(
        array(
            'scope' => $this->permissions_needed,
            'display' => 'page'
        )
);
...