从用户ID和Facebook App秘密获取Facebook访问令牌?

Tom*_*son 5 facebook facebook-graph-api facebook-apps facebook-access-token

我试图了解facebook api的工作原理.最终目标是能够从Facebook页面阅读帖子.

如果某人已经在Facebook上与我的应用程序相关联,那么我的c#应用程序可以从公共Facebook页面获取帖子,如果它知道他们的Facebook帐户ID(并且Facebook应用程序秘密硬编码).

如果是这样的话,为了获得可以用来获取帖子的访问令牌,需要做出什么样的http请求,以及在一个到期之前获得新访问令牌的请求是什么?

如果你能在c#中提供一个例子(可能使用acebooksdk.net库),这将是很棒的!

谢谢.

Tom*_*son 6

这样做的方法是使用"用于Web的登录流程(没有JavaScript SDK)"api来获取用户访问令牌.需要使用图形api查询发送用户访问令牌以获取页面帖子.

第一步是在Facebook上创建一个应用程序,您可以在其中指定希望程序通过图形API访问的信息.然后,最终用户将选择稍后接受这些权限.

该程序创建一个Web浏览器框架并导航到 https://www.facebook.com/dialog/oauth?client_id={app-id}&redirect_uri=https://www.facebook.com/connect/login_success.html&response_type=token

响应类型"令牌"表示当(嵌入式)Web浏览器重定向到redirect_uri用户时,访问令牌将作为片段添加到URL的末尾.例如,浏览器最终会在页面上显示urlhttps://www.facebook.com/connect/login_success.html#access_token=ACCESS_TOKEN...

重定向uri可以是任何东西,但facebook具有为此场景预留的特定内容,其中您没有托管您想要接收的另一个服务器并处理响应.

基本上,facebook会收集用户所需的所有信息,然后将其发送给redirect_uri.他们可能需要的一些信息是他们登录并接受Facebook上的应用所需的权限.

因此,该程序只关注嵌入式浏览器所处的URL以及何时匹配redirect_uri它解析将包含数据作为片段的url然后关闭浏览器.