我可以发布到带有应用程序的页面吗?access_token
如this other question所述,如果用户授予publish_stream权限,我可以使用应用程序access_token发布到该用户的墙。我测试了它,它工作。但我无法使用应用程序access_token发布到用户的页面!我错过了什么吗?我可以发布到带有应用程序的页面吗?access_token
现在我使用/ me/accounts/connection来获取页面的access_token,并使用它来发布。但是这对于我和用户来说是一个非常头痛的问题,因为这些令牌经常过期(当用户更改密码时......),每次发生这种情况发布都会失败,我需要通过电子邮件发送用户再次登录,所以我可以为该页面检索一个新的access_token。这是一种糟糕的用户体验,我试图找到解决方法。应用程序令牌适用于发布给用户,这非常棒,但我找不到使其适用于网页的方法。有小费吗?
编辑: 为了进一步澄清,我现在要求manage_pages和offline_access权限,然后取每个页面及的access_token用它来发布它。这样可行。主要问题是令牌过期,即使使用offline_access权限也是如此。令牌过期的最常见原因是用户更改了密码。这是我发布到Facebook页面时遇到的一个常见错误。
Facebook错误。键入:OAuthException,message:'错误验证 访问令牌:会话与当前存储的会话不匹配。这可能是因为用户在创建会话 之后更改了密码,或者由于安全原因Facebook更改了会话。
为了解决这个问题,我给用户发邮件并要求他们再次访问我们的应用程序,当他们这样做时,我抓住一组全新的access_token进行工作。但这是有问题的,因为用户对发生错误的原因感到困惑,并责怪我们,并且一些用户不打开他们的电子邮件,所以问题没有得到解决,然后他们发现我们的应用程序已停止后生气几周前没有他们要求停止。
这就是为什么我希望我可以使用应用程序access_token发布以避免这些问题。由于它适用于用户配置文件,我希望它也适用于页面。但目前为止没有运气,除非我错过了一些明显的东西。
您描述的工作 - 去年我们都能够使用应用访问令牌成功发布粉丝页面墙。实际上,对于我们的一些用户,我发现它仍然有效。不过,我觉得其他两个答案都是正确的,这里不再张贴到网页的方式(请参阅“页面登录” here)
这就是说,你应该能够存储访问令牌页面让您自己重新查询用户的关联帐户。
不幸的是,页面的访问令牌将遭受与用户相同的脆弱性,根据这里的答案:Facebook Page Access Tokens - Do these expire?。当访问令牌的用户更改密码时,页面访问令牌将过期。
要发布到页面,有一个额外的步骤,您可以使用它们的令牌来获取其页面列表。每个页面都有自己的令牌,使用该令牌发布到页面。请记住,设置原始令牌时,您需要指定您需要访问页面。
这就是我正在做的事情(正如问题中提到的那样),这也是我试图阻止并找到更好的方法。 – 2011-12-27 11:06:02
在尝试发布之前是否抓取页面的标记? – box86rowh 2011-12-27 13:09:37
嗯。也许你只会读到问题的第一部分! – 2011-12-27 20:45:51
我的应用程序完全符合您的要求。
- 我向用户请求manage_pages和offline_access权限。
- 我存储用户的access_token。
- 我问用户哪个页面(由我/帐户决定)他们想要一个流项目发布到什么时候。
- 之后,当需要发布到页面的订阅源时,我从数据库,页面标识和消息中获取用户的access_token。
- 使用该用户的访问令牌,我查询我/帐户并获取该帐户的最新访问令牌(又名页面)
- 使用该页面的访问令牌,我me/feed(或者是我/ posts ..从我的代码库中的.away)发布流项目。
但是,当用户access_token失效时,如何处理它改变她的密码?因为这是我试图解决的主要问题。 – 2011-12-28 08:21:44
我的应用程序具有相同的潜在问题。您的用户在更新密码后必须回到您的应用并获取新的令牌。我建议当你的代码看到该令牌无效时,通过电子邮件发送给用户返回到你的应用程序。实际上,Facebook在更改密码时应警告用户,他们永远不会过期的令牌需要重新授予。你可以让你公司的业务关系代表联系Facebook,看看Facebook是否可以添加类似的东西。祝你好运。 – DMCS 2011-12-28 17:07:54
好的。你有没有试过'offline_access'权限? – 2011-12-27 13:06:52