Facebook访问令牌因未知原因而到期

Jew*_*ark 8 facebook facebook-graph-api

来自@ avs099的编辑:我正在这篇文章上开始赏金,因为我有完全相同的问题.我在这里总结了这个问题,并留下了帖子本身,底部没有任何变化供参考.


我们拥有的: Facebook页面访问令牌,如此处所述获得:使用新的fb_exchange_token请求进行身份验证,以及将其延长至60天.

有什么问题:这个令牌可以工作一段时间 - 有时候我可以在几天内将数百张照片发布到我的粉丝页面; 有时它几乎没有照片 - 然后我开始得到

(OAuthException)使访问令牌无效时出错:会话已失效,因为用户已更改密码.

要么

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

来自Facebook的例外 - 当然我没有更改密码或取消授权应用程序.

附加信息:不确定是否重要但是:

  1. 有时候,在我从Facebook提出请求后的几天,我开始使用令牌
  2. 从服务器请求令牌(通过C#后端),该服务器位于与将照片发布到粉丝页面的桌面应用程序不同的地理区域中.
  3. 有时会发生几个不同的桌面应用程序发布来自不同PC的照片(我猜不同的IP)

任何人都知道发生了什么以及如何解决这个问题?

谢谢.


我有一个Facebook应用程序,有两个目的:

1)允许用户facebook连接我的网站2)允许我的网站发布到我的网站Facebook粉丝页面墙

我关心的是第二次使用.我曾经能够在粉丝页面上设置应用程序的权限,只允许发布(通过php sdk)而不用担心访问令牌.现在我已经创建了一些新的粉丝页面,并且该功能似乎已被删除.好吧,所以我经历了为用户(总是我或我的Facebook粉丝页面的另一个管理员)获取访问令牌(成功)的整个过程,并使用该令牌获取我管理的粉丝页面的访问令牌(我有manage_pages权限以及我要发布到的页面的其他管理员也是如此.但是,当引擎转到将内容发布到我的粉丝页面时,令牌已过期,并出现以下两条错误消息之一:

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

要么

OAuthException:使访问令牌无效时出错:会话已失效,因为用户已更改密码.

但这不是依赖于外部用户的访问令牌,只有内部人员(我和其他一个人现在).我们不会更改密码或做任何事情.我甚至在获得令牌后退出Facebook测试它,它工作正常.只是过了一会儿,他们无缘无故地过期了.当我拿到令牌时,我可以在调试工具上检查它们,它们应该持续60天(根据文档),尽管该工具说它们永不过期.

我已经设置了系统,所以当它无法发布到页面时,我会收到一封电子邮件,其中包含指向我网站的链接以更新令牌.

有人知道发生了什么事吗?