C# 在年龄限制的Facebook粉丝页面上使用cron job获取信息
我有一个应用程序,可以在某个时候刷新Facebook应用程序信息,比如说每天一次,然后将它们写入数据库。 应用程序试图从中获取信息的某些页面受到年龄限制,情况变得复杂 到目前为止,我发现一种方法是使用用户访问令牌获取页面信息 示例:{user_access_token} 但这是不可能的,因为应用程序应该每天自己运行一次,并且令牌有时间限制(默认为两个小时),离线访问令牌不再可用C# 在年龄限制的Facebook粉丝页面上使用cron job获取信息,c#,facebook,facebook-graph-api,facebook-access-token,C#,Facebook,Facebook Graph Api,Facebook Access Token,我有一个应用程序,可以在某个时候刷新Facebook应用程序信息,比如说每天一次,然后将它们写入数据库。 应用程序试图从中获取信息的某些页面受到年龄限制,情况变得复杂 到目前为止,我发现一种方法是使用用户访问令牌获取页面信息 示例:{user_access_token} 但这是不可能的,因为应用程序应该每天自己运行一次,并且令牌有时间限制(默认为两个小时),离线访问令牌不再可用 有什么办法可以做到这一点吗?普通代币通常在两小时后过期,但使用该短期代币,您可以请求一个新的长期代币,该代币的持续时间
有什么办法可以做到这一点吗?普通代币通常在两小时后过期,但使用该短期代币,您可以请求一个新的长期代币,该代币的持续时间为60天 在您获得这些信息后,您只需将用户id和相应的扩展令牌保存在数据库中,因此,如果您只想获取某些页面的一些信息,您不需要为应用程序的每个用户都这样做,您只需要为自己这样做,你可以在你的应用程序上创建一个私人区域,每59天去一次,只需续订代币 要将短期访问令牌交换为长期访问令牌,只需向graph 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文档
您可以将短期代币延长到60天,谢谢您的回答。但问题仍然存在,我需要应用程序自己工作。这样,如果我更改帐户的权限、更改密码或在60天后,我将需要提供新的访问令牌。很抱歉告诉您这个坏消息,但这是唯一的方法。对于graph api的每个请求,您都需要一个有效的访问令牌,令牌的最长生存期为60天。如果问题是因为更改了帐户密码或权限,为什么不为此创建一个“假”帐户?是的,我已经想到了,这是一些解决方案,但它仍然必须在60天内提供新的访问令牌。我一直想避免的事情。