1

Facebook 已弃用离线访问权限。作为开发人员,我是否有其他方法可以在用户不在线时在用户的墙上发帖,或者我只能在他访问我的应用程序时这样做?

4

3 回答 3

4

您可以在应用程序中增加 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/

于 2012-06-27T18:39:04.147 回答
2

您可以在用户墙上发布长达 60 天的帖子,而无需该用户登录。之后,您需要强制用户再次登录 Facebook 并获得一个新的 60 天访问令牌。

为了优雅地完成这一切,您应该将获取令牌的日期存储在您的数据库中,并在该日期临近时为用户设置必要的 UI。

此外,如果用户是您的应用程序的不常用用户,您应该每天至少测试一次令牌的有效性,如果您的应用程序发现令牌已过期,则将他们重定向到登录 Facebook。这也有助于重新。由于用户更改其 Facebook 密码,令牌变得无效。

于 2013-02-04T16:43:58.973 回答
1

当然,只要您拥有有效的访问令牌,您就可以在用户的​​墙上发帖——无论他们是否“在线”。

需要阅读的东西(显然看起来你在询问之前没有做太多自己的研究):

https://developers.facebook.com/roadmap/offline-access-removal/

https://developers.facebook.com/blog/post/2011/05/13/how-to--handle-expired-access-tokens/

于 2012-06-27T17:23:35.370 回答