2

我通过 Facebook 应用程序获取客户事件。他们启动应用程序并授予我检索他们事件的权限。

每天我都使用 Facebook 提供的令牌检索他们的事件。他们不需要采取任何行动。

两个月后,我收到以下异常:验证访问令牌时出错:会话已在 unix 时间 1383568229 过期。当前的 unix 时间为 1383569625。

我不能要求他们再次启动该应用程序;他们会认为我的应用程序有问题。

另外,我使用了一个类似的应用程序,它使用 RSS(RSS 涂鸦)为我的一个页面提供信息。它从未要求我更新我的令牌,但在 2-3 年后仍然有效。

因此,必须可以进行自动续订。

但到目前为止,在 google 和 stackoverflow 上花了几个小时后,我仍然没有找到解决方案。

任何想法 ?

PS:我们说的是 Facebook 应用程序,而不是页面。

谢谢。

4

2 回答 2

5

正如@CBroe 所说,不可能自动扩展令牌的有效性(请参阅https://developers.facebook.com/docs/facebook-login/access-tokens/#extending)。

引文。

“即使是长期存在的访问令牌最终也会过期。在任何时候,您都可以通过将人员发送回您的 Web 应用程序使用的登录流程来生成新的长期存在的令牌”

我建议您尝试捕获错误代码(请参阅https://developers.facebook.com/docs/graph-api/using-graph-api/#errors),这可能是错误代码 190 和错误子代码 463从 JSON 错误消息中,例如向特定用户发送一封电子邮件,邀请您重新访问您的应用程序...

于 2013-11-14T09:16:55.327 回答
3

正如@Tobi 所说,让你的应用变得有趣,这样你的用户就会回到你的应用。

我不明白为什么用户会认为你的应用程序有问题?如果您的应用不需要任何用户交互并且您的用户理解这一点,请向您的用户解释这一点并在令牌到期之前通知他们。

要通知,您可以使用通知 API - 但请注意:

您的应用不应向过去 28 天内未使用过的人发送通知。数据显示,这一群体的参与度明显较低。他们也最有可能将您的通知报告为垃圾邮件。收到大量垃圾邮件报告的应用程序可能会被禁用。

(参考:最佳实践

于 2013-11-17T09:26:21.143 回答