facebook - 删除 offline_access 权限的明智解决方案

标签 facebook facebook-access-token offline-mode

我在离开 FB 平台一段时间后回来构建 FB 应用程序,我看到旧的 offline_access 权限已被删除并替换为长(ish)-expiry token [1]。

因此,现在看来任何需要根据时间表或外部应用程序中的某些事件将数据推送到 Facebook 的外部应用程序都需要处理已过期的长期访问 token 。这变得更加令人沮丧,因为现在用户注销 FB 也会杀死任何长期到期的 token [2],而以前,即使用户注销,offline_access 仍然存在。

我仍处于思考解决方案的阶段,但我想到了两个想法:

1) 每当我的应用程序联系具有 FB 集成的用户时,他们都会被要求单击一个链接,该链接将触发与 FB 的重新授权以获取新的长访问 token 。在长期访问 token 的生命周期内,我的用户通常会被多次联系,因此这应该有效地持续更新长期访问 token ,只要他们需要(即使它确实增加了一些烦人的摩擦)到我的应用程序)

2) 因为我不能保证 1) 会一直有效(例如,由于用户没有点击我应用的电子邮件通知中的重新授权链接,或者他们退出了 Facebook),我还必须处理FB 交互失败,方法是将它们置于等待队列中并通过电子邮件向用户明确要求他们再次授予长期访问 token 。不酷,但我看不到其他选择。如果在 X 尝试要求他们重新授予权限后他们没有响应请求,我只需要将任务打包并通过电子邮件向他们解释这是由于 FB 限制,而不是我的应用程序。再一次,不酷。

有没有人想出更好的解决方案来保持与具有身份验证/显式权限的用户帐户交互的能力?我很想听听你做了什么。

(这一切都在等待我重新阅读 FB ToS,当然 - 这完全有可能违反规则,这会更令人沮丧)

编辑/更新:我需要推送的数据是将图像推送到相册,这些图片将从各种来源到达我的服务器,然后将被推送到相应用户的相册(当然,需要他们预先授予的许可)。我无法保证在图像到达我的服务器时有任何基于 Web 的最终用户交互,以便让最终用户授予我一个新的短期 token 。基本上,offline_access 确实是这个 IMO 的理想选择。

更新 2:注意:当需要授予或扩展 token 时,用户不一定会使用我的应用程序或 Facebook,这对我的用例来说确实很关键。

[1] https://developers.facebook.com/roadmap/offline-access-removal/ [2] http://developers.facebook.com/blog/post/2011/05/13/how-to--handle-expired-access-tokens/

最佳答案

你有两个正确的选择,但我会指出第三个选项和一个鲜为人知的事实,它可能与你的“需要将数据推送到 Facebook”的特定场景相关,也可能不相关

首先,假设您已经为您的应用程序实现了移动网络或 Canvas ,那么另一个可用的选项是针对用户请求或通知的应用程序。用户将在书签列表中的应用程序名称旁边看到一个小的通知计数器指示器。如果他们响应请求或书签/通知计数器让他们点击您的应用程序,您可以触发您的服务器端 token 更新/扩展过程。这个过程对用户来说是透明的——假设他们仍然安装了你的应用程序,他们什么也看不到。

其次,今天很多人使用 offline_access 的目的只是向用户的流中发帖。如果这就是您所需要的,并且您不需要执行一堆 FQL 查询或点击图形 API 上的其他操作,那么如果您获得 publish_stream 权限,则实际上不需要 offline_access 或当前用户 token 。借助 publish_stream,您可以使用您的应用访问 token 在用户离线时发帖。

关于facebook - 删除 offline_access 权限的明智解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11612067/

相关文章:

android - 如何在应用程序启动时获取当前的 Facebook 访问 token ?

Facebook 登录返回空访问 token

google-maps-api-3 - react-native-maps 支持离线谷歌地图

facebook - 使用 FB.api() 时应该传递访问 token 吗?

smartclient - 对 "occasional connected"场景的支持有多重要?

android-studio - 无法在离线模式下运行或构建我的简单应用

iphone - Facebook 使用什么技术在他们的 iPhone 应用程序中生成他们的新闻提要?

php - Facebook Open Graph API 使用 PHP 或 Javascript 创建对象

facebook - 使用 FQL 获取用户的所有点赞(全部)

php - 如何以正确的方式获取访问 token facebook api?