2

基本的な考え方はカバーしましたが (私はそう思います)、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 が返されます。何か案は?上記が正しいように見える場合、これをデバッグしようとするかもしれないことを誰かが提案できますか?

4

1 に答える 1

4

アプリで、ユーザーが Facebook にログインしているかどうかを確認するときは、アプリがユーザーのウォールに投稿する「特別な権限」を要求していることを確認してください。これを行うには、コードを次のように変更します。

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

「publish_stream」を含む値のリストに設定されている req_perms キーに注意してください。この権限がない場合、フィードの呼び出しは失敗します。

また、これが本当に問題であるかどうかにかかわらず、Facebook リクエストを try-catch ブロックでラップして FacebookApiException タイプの例外をキャッチし、エラーが発生したときに詳細情報を取得できます。例えば:

        try {
            $uid = $this->facebook->getUser();
            $me = $this->facebook->api('/me');
        } catch (FacebookApiException $e) {
            print_r($e);
        }
于 2011-05-19T17:07:15.947 に答える