1

我正在尝试在用户拥有的页面上为发布者设置一个应用程序。

1)我请求具有 manage_pages,publish_stream 范围的 js 的许可

2) $fb->api('/'.$fb->getUser().'/accounts', 'GET', array('access_token' => $token)

3)我通过线程中的 MarcusJoe 方法获取令牌 How to extend access token validation since offline_access deprecation

4)将页面access_token存储在数据库中

5) 在页面上发布 $fb->api('/'.$pageId.'/feed','POST',array_merge(array('access_token'=>$row->token),$params));

因此,当我登录时,如果我确实注销了大约两个小时就可以很好地摆脱所有cookie,它会起作用而不是停止处理消息

使访问令牌无效时出错:会话与当前存储的会话不匹配。这可能是因为用户在创建会话后更改了密码,或者 Facebook 出于安全原因更改了会话。

所以我很想知道我是否做错了什么:(

你能帮我吗 ?

再见

4

1 回答 1

0

每次 facebook 以您的方式发送令牌时,他们还会添加“过期”字段。令牌结果具有以下格式:

access_token=XXXXXX&expires=0000

(应用程序令牌除外)

因此,当您提取访问令牌时,也要获得过期时间并确保它有多长时间。您可能想尝试服务器端身份验证,因为它会产生长期存在的令牌。

当用户注销时,会话无效,您的令牌变得无用。除了让用户重新使用您的应用程序之外,您无法获得新的令牌。还有其他一些会话失效的情况,例如替换密码、删除您的应用程序。

于 2012-04-26T21:30:41.030 回答