Facebook access_token未激活,重试变为活动状态
问题描述:
我有一个Facebook画布应用程序,我使用的是最新版本的PHP SDK。Facebook access_token未激活,重试变为活动状态
我有一个看起来像这样的工作流程。用户登录Facebook并点击应用程序列表中的应用程序。
用户登录表单页面 - >点击提交 - >用户没有看到它通过表单处理页面并尝试发布到墙上 - >标题重定向到邀请页面。
该流程的工作原理是因为我内置了透明的错误处理。但是,在第一次走过这条河流时,没有墙柱。重复点击Facebook图标转到用户主页,点击用户应用列表中的应用链接。
用户登录表单页面 - >点击提交 - >用户没有看到它通过表单处理页面并尝试发布到墙上 - >标题重定向到邀请页面。
这个时间和每一次后它的工作。
我在第一次尝试期间收到的错误是会话access_token无效。之后的每一次,只要用户不注销它就会工作,我永远不会得到一个坏的代币。
在窗体过程页面里的墙后的代码是:
$user = null;
require "/usr/home/app/www/fb/facebook.php";
//facebook application
$fbconfig['appid' ] = "xxx";
$fbconfig['secret'] = "xxx";
$fbconfig['baseUrl'] = "http://www.app.com/fb";
$fbconfig['appBaseUrl'] = "http://apps.facebook.com/app";
// Create our Application instance.
$facebook = new Facebook(array(
'appId' => $fbconfig['appid'],
'secret' => $fbconfig['secret'],
));
//session_write_close();
$user = $facebook->getUser();
try {
$publishStream = $facebook->api("/me/feed", 'post', array(
'message' => "mess",
'link' => 'http://apps.facebook.com/app',
'picture' => 'http://images.app.com/img.jpg',
'name' => 'name',
'description'=> 'des'
)
);
} catch (FacebookApiException $e) {
d($e);
}
header("Location: https://www.app.com/fb/invite.php");
这是截断离开了那是错误的信息,确切的错误:
FacebookApiException Object
(
[result:protected] => Array
(
[error] => Array
(
[message] => An active access token must be used to query information about the current user.
[type] => OAuthException
)
)
....
答
因此,在撞击墙壁一周后,我想到了! 我在第一页末尾添加了一个脚本来重置滚动条。
<script>
FB.init({
appId : 'appid',
status : true,
cookie : true,
xfbml : true,
});
</script>
下一页是处理,直到我到达邀请屏幕出现的下一个页面时,处理才正常。在该页面上是FB.init,
function callAppReq() {
FB.init({
appId : 'appid',
cookie: true,
channelUrl : 'https://apps.facebook.com/app',
oauth : true
});
加载此页面后,每次此应用程序正常工作。我正在挠头,无法弄清楚。在我注意到之前,“oauth:true”是唯一没有在第一页上被调用的事情。因此,在该愚蠢的脚本,我需要做出滚动条消失我说“:OAuth的:真正的” ...
<script>
FB.init({
appId : 'appid',
status : true,
cookie : true,
xfbml : true,
oauth : true
});
</script>
罗”你看,现在它工作。我非常沮丧,这是这个代码打破了事情,但非常高兴,我现在已经修复并了解问题是什么!
答
也许你可以试试offline_access
获取非终止访问令牌的权限?
我真的不想要另一个权限只是为了让publish_stream权限正常工作。不过,谢谢你的回应。 –