8

我有一个应用程序会在某个时间刷新 Facebook 应用程序信息,假设每天一次并将它们写入数据库。应用程序试图从中获取信息的一些页面是年龄限制的,情况变得复杂。

到目前为止,我发现一种方法是使用用户 access_token 获取页面信息。

例如:https ://graph.facebook.com/BrandCigarettes?access_token= {user_access_token}

但这是不可能的,因为应用程序应该每天运行一次,并且令牌有时间限制(默认为两小时),并且离线访问令牌不再可用。

有没有办法做到这一点?

4

1 回答 1

1

普通令牌通常在两小时后过期,但使用该短期令牌,您可以请求一个新的长期令牌,该令牌的有效期为 60 天。

得到之后,您只需要在数据库中保存 user_id 和相应的扩展令牌,因此,如果您只想获取某些页面的一些信息,您不需要为应用程序的每个用户都这样做,您只需要为自己做,你可以在你的应用程序上创建一个私人区域,你每 59 天去一次,只是为了更新令牌。

要将短期访问令牌换成长期访问令牌,只需向图形 API 发出请求

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 

在这个问题上,接受的答案解释了如何在不使用 C# facebook sdk 的情况下做到这一点

饲料离线访问

正如 CBroe 评论的那样,我还建议您阅读有关扩展令牌的 facebook 文档

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

于 2013-04-11T14:07:26.660 回答