我无法将以下代码发布到用户ID为514559322的用户的墙上。但是,如果我用字符串'me'替换$ uid的值,我可以发布到我自己的墙上。
<?php
require_once "../src/facebook.php";
$app_id = "my app id";
$app_secret = "my app secret";
$uid = 514559322;
// Init facebook api.
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
'cookie' => true
));
// Get the url to redirect for login to facebook
// and request permission to write on the user's wall.
$login_url = $facebook->getLoginUrl(
array('scope' => 'publish_stream')
);
// If not authenticated, redirect to the facebook login dialog.
// The $login_url will take care of redirecting back to us
// after successful login.
if (! $facebook->getUser()) {
echo <<< EOT
<script type="text/javascript">
top.location.href = "$login_url";
</script>;
EOT;
exit;
}
// Do the wall post.
$facebook->api("/$uid/feed", "post", array(
message => "Hello win95",
picture => "http://cdn.papyimg.com/wp-content/uploads/2011/03/Windows-95-500x312.png",
link => "http://en.wikipedia.org/wiki/Windows_95",
name => "Go windows 95",
caption => "Caption - this is the best operating system in the world!"
));
?>
如何允许我的php脚本使用uid 514559322发布用户的墙?
在api调用周围添加try catch循环之后,这是我得到的Exception消息:
OAuthException: (#1) An error occured while creating the share
那么我的代码在哪里提供身份验证信息?或适当的auth令牌?
答案 0 :(得分:1)
您的用户需要为“offline_access,publish_stream”授权您的应用(尽管现在正在替换,请参阅此处http://developers.facebook.com/roadmap/offline-access-removal/)。
然后您可以在api调用中注入令牌
$res = $facebook->api('/me/feed', 'POST', $post);
其中$ post是$ access_token和$ message
的数组答案 1 :(得分:1)
你忘记了access_token
param:
// Do the wall post.
$facebook->api("/$uid/feed", 'post', array(
'access_token' => $facebook->getAccessToken(),
'message' => "Hello win95",
'picture' => "http://cdn.papyimg.com/wp-content/uploads/2011/03/Windows-95-500x312.png",
'link' => "http://en.wikipedia.org/wiki/Windows_95",
'name' => "Go windows 95",
'caption' => "Caption - this is the best operating system in the world!"
));
或者,您需要offline_access
权限,这是不好的,因为很快就会弃用..