Facebook API(通过PHP):发布到Feed?

时间:2011-05-19 16:04:10

标签: php facebook facebook-graph-api facebook-php-sdk

我已经掌握了基本的想法(我认为),但似乎无法使用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 个答案:

答案 0 :(得分:4)

在您的应用中,当您检查用户是否已登录Facebook时,请确保您确认您的应用已请求发布到用户墙上的“特权”。您可以通过修改代码来执行此操作:

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

请注意,req_perms键被设置为包含'publish_stream'的值列表。如果您没有此权限,则Feed调用将失败。

无论这是否真的存在问题,您可以使用try-catch块包装您的Facebook请求以捕获FacebookApiException类型异常,以便在出现错误时获取更多信息。例如:

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