Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在年龄限制的Facebook粉丝页面上使用cron job获取信息_C#_Facebook_Facebook Graph Api_Facebook Access Token - Fatal编程技术网

C# 在年龄限制的Facebook粉丝页面上使用cron job获取信息

C# 在年龄限制的Facebook粉丝页面上使用cron job获取信息,c#,facebook,facebook-graph-api,facebook-access-token,C#,Facebook,Facebook Graph Api,Facebook Access Token,我有一个应用程序,可以在某个时候刷新Facebook应用程序信息,比如说每天一次,然后将它们写入数据库。 应用程序试图从中获取信息的某些页面受到年龄限制,情况变得复杂 到目前为止,我发现一种方法是使用用户访问令牌获取页面信息 示例:{user_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天内提供新的访问令牌。我一直想避免的事情。