Facebook API (через PHP): публикация в фиде? - PullRequest
2 голосов
/ 19 мая 2011

Я понял основную идею (я думаю), но не могу успешно опубликовать что-либо, используя предоставленный Facbook класс PHP.Учитывая этот пример, может ли кто-нибудь увидеть что-нибудь, что может быть проблемой?

// Initialize Facebook API
$fb = new Facebook(array(
    'appId' => FACEBOOK_APP_ID,
    'secret' => FACEBOOK_SECRET,
    'cookie' => true
));

if($fb->getSession()) {
    $res = $fb->api('/me/feed/', 'post', array(
        'message' => 'test message',
        'description' => 'testing'
    ));
}

var_dump($res);

Когда я вывожу содержимое $ res, я получаю NULL.Есть идеи?Если вышеприведенное выглядит правильно, может кто-нибудь предложить некоторые вещи, которые я мог бы попробовать отладить это?

1 Ответ

4 голосов
/ 19 мая 2011

В своем приложении, когда вы проверяете, вошел ли пользователь в Facebook, убедитесь, что вы подтверждаете, что ваше приложение запросило «особую привилегию» для публикации на стене пользователя.Вы можете сделать это, изменив код следующим образом:

$url = $this->facebook->getLoginUrl(array('canvas' => 1, 'fbconnect' => 0, 'req_perms' => 'user_status,publish_stream'));

Обратите внимание, что для ключа req_perms задан список значений, включая publish_stream.Если у вас нет этой привилегии, вызов фида будет неудачным.

Кроме того, действительно ли это проблема или нет, вы можете обернуть свои запросы Facebook блоком try-catch, чтобы перехватывать исключения типа FacebookApiException, чтобы получить больше информации в случае ошибок.Например:

        try {
            $uid = $this->facebook->getUser();
            $me = $this->facebook->api('/me');
        } catch (FacebookApiException $e) {
            print_r($e);
        }
...