我有一个简单的PHP页面,用于将消息发布到我自己的墙上。
我已经获得了一个具有“read_stream”和“publish_stream”权限的offline_access令牌。
define('FB_APIKEY', 'MY_APP_KEY');
define('FB_SECRET', 'MY_APP_SECRET');
define('FB_SESSION', 'MY_OFFLINE_TOKEN');
require_once('facebook.php');
try {
$facebook = new Facebook(FB_APIKEY, FB_SECRET);
$facebook->api_client->session_key = FB_SESSION;
$attachment = array(
'message' => 'some meesgae',
'name' => 'This is my demo Facebook application!',
'caption' => "Caption of the Post",
'link' => 'mylink.com',
'description' => 'this is a description',
'actions' => array(array(
'name' => 'Get Search',
'link' => 'google.com'
))
);
$result = $facebook->api('/me/feed?access_token=' . FB_SESSION,
'post',
$attachment);
var_dump($result);
} catch(Exception $e) {
echo $e;
}
当我运行它时,我得到“OAuthException:错误验证应用程序”。
我确认我的离线令牌很好。当我转到https://graph.facebook.com/me?access_token=[MY_OFFLINE_TOKEN]时,它会正确地以JSON格式返回我的公开个人资料。
所以,我认为我在某处对API调用做错了,但对于我的生活,我似乎无法弄明白。过去两天我一直在努力解决这个问题。请有人帮忙! :(
答案 0 :(得分:4)
您这里没有APP ID。并拨打这样的电话:
require_once('facebook.php');
$facebook = new Facebook( array(
'appId' => 'APP_ID',
'secret' => 'APP_SECRET',
'cookie' => true
));
try {
$attachment = array(
'message' => 'some meesgae',
'name' => 'This is my demo Facebook application!',
'caption' => "Caption of the Post",
'link' => 'mylink.com',
'description' => 'this is a description',
'actions' => array(array(
'name' => 'Get Search',
'link' => 'google.com'
))
);
$attachment['access_token'] = $offline_access_token; // add it to the array
$result = $facebook->api('/me/feed', 'POST', $attachment );
var_dump($result);
} catch(Exception $e) {
// error_log( $e ); // should use something like this when in production
echo $e;
}
未经测试,但应该有效。如果没有,请告诉我。