Facebook 已弃用离线访问权限。作为开发人员,我是否有其他方法可以在用户不在线时在用户的墙上发帖,或者我只能在他访问我的应用程序时这样做?
3 回答
您可以在应用程序中增加 2 个表列,即 short_access_token 和 long_access_token。
一旦用户对您的应用程序进行身份验证,就会生成一个访问令牌,并将其存储在 short_access_token 中。然后将此访问令牌传递给:
https://graph.facebook.com/oauth/access_token?
client_id=APP_ID&client_secret=APP_SECRET&grant_type=fb_exchange_token&fb_exchange_token=EXISTING_ACCESS_TOKEN
运行此命令后,将生成一个有效期为 60 天的访问令牌。将其存储在 long_access_token 中。现在,使用这个 long_access_token 60 天。
您每天只能生成一次长寿命访问令牌,即第一次。使用这个长期存在的访问令牌在用户的墙上发布(如果您已经获得许可)。
参考:https ://developers.facebook.com/roadmap/offline-access-removal/
您可以在用户墙上发布长达 60 天的帖子,而无需该用户登录。之后,您需要强制用户再次登录 Facebook 并获得一个新的 60 天访问令牌。
为了优雅地完成这一切,您应该将获取令牌的日期存储在您的数据库中,并在该日期临近时为用户设置必要的 UI。
此外,如果用户是您的应用程序的不常用用户,您应该每天至少测试一次令牌的有效性,如果您的应用程序发现令牌已过期,则将他们重定向到登录 Facebook。这也有助于重新。由于用户更改其 Facebook 密码,令牌变得无效。
当然,只要您拥有有效的访问令牌,您就可以在用户的墙上发帖——无论他们是否“在线”。
需要阅读的东西(显然看起来你在询问之前没有做太多自己的研究):
https://developers.facebook.com/roadmap/offline-access-removal/
https://developers.facebook.com/blog/post/2011/05/13/how-to--handle-expired-access-tokens/