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

时间:2013-08-12 21:03:26

标签: facebook facebook-graph-api facebook-apps facebook-access-token

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

如果某人已经在facebook上与我的应用程序相关联,那么我的c#应用程序会在公共脸书页面上获取帖子,如果它知道自己的Facebook帐户ID(并且Facebook应用程序密码已经硬编码)。

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

如果您可以在c#(也许使用acebooksdk.net库)中提供一个非常棒的示例!

感谢。

1 个答案:

答案 0 :(得分:6)

这样做的方法是使用"The Login Flow for Web (without 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的末尾。例如,浏览器最终会在页面上显示网址https://www.facebook.com/connect/login_success.html#access_token=ACCESS_TOKEN...

重定向uri可以是任何东西,但facebook具有为此场景留出的特定内容,在这种情况下,您不会托管您想要接收的另一台服务器并处理响应。

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

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