嘿所有我使用以下代码发布到我的新闻Feed上的帖子:
<?php
require '../src/facebook.php';
$facebook = new Facebook(array(
'appId' => 'xxxxxxxxxxxxxxx',
'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
'fileUpload' => true,
'cookie' => true
));
$user = $facebook->getUser();
if ($user) {
try {
$access_token = $facebook->getAccessToken();
$user_profile = $facebook->api('/me');
$comment = $facebook ->api('/xxxxxxxxxxxxxx/comments',
'POST',
array(
'access_token' => $access_token,
'message' => 'testing!'
)
);
} catch (FacebookApiException $e) {
echo ($e);
$user = null;
}
}
<?php if ($user): ?>
<a href="<?php echo $logoutUrl; ?>">Logout</a>
<?php else: ?>
<a href="<?php echo $loginUrl; ?>">Login with Facebook</a>
<?php endif ?>
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$statusUrl = $facebook->getLoginStatusUrl();
$params = array(
'scope' => 'read_stream, friends_likes, email, read_mailbox, read_requests, user_online_presence, friends_online_presence, manage_notifications, publish_actions, publish_stream, user_likes, user_photos, user_status, user_videos, read_insights'
);
$loginUrl = $facebook->getLoginUrl($params);
}
?>
<?php print_r($user_profile); ?>
出于某种原因,我收到了这个错误:
OAuthException:(#221)照片不可见
我不知道,因为我发布文本评论,甚至不是图像?
如果我注释掉代码行 $ comment = $ facebook - &gt; api('/ xxxxxxxxxxxxxx / comments', 'POST', 阵列( 'access_token'=&gt; $的access_token, 'message'=&gt; “测试!” ) ); 它工作得很好(如,用 user_profile 显示我的信息)。我试过通过页面阅读,告诉你如何使用评论here而我这样做 - 它似乎似乎不想工作?
我缺少什么?
更新
使用图形API我能够通过PHP做同样的事情,所以我知道它的工作原理......:
答案 0 :(得分:0)
我知道这是一个古老的问题,但......
首先,对于相同环境的测试,您必须使用自己的应用令牌,而不是 Graph API Explorer 。否则,您需要使用所有权限来测试API。
其次,您的问题必须是权限(这就是为什么它在API Explorer上工作)。你应该:
当用户准备发送评论时,请求 publish_permission 。
作为一般规则,当您看到 OAuthException 时,您将遇到权限问题。
如果帖子为照片类型,则您需要 user_photos 权限。