我已经掌握了基本的想法(我认为),但似乎无法使用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。有任何想法吗?如果上面看起来是正确的,有人可以建议我尝试调试一些事情吗?
答案 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);
}