5

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

如果有人在 facebook 上与我的应用程序连接,我的 c# 应用程序可以从公共 facebook 页面获取帖子,如果它知道他们的 facebook 帐户 ID(并且有 facebook 应用程序秘密硬编码)。

如果是这样,它需要进行哪些 http 请求才能获取访问令牌,然后可以使用该访问令牌来获取帖子,以及在一个过期之前获取新访问令牌的请求是什么?

如果您可以在 c# 中提供一个示例(也许使用 acebooksdk.net 库),那就太好了!

谢谢。

4

1 回答 1

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 的末尾。例如,浏览器最终会出现在带有 url 的页面上https://www.facebook.com/connect/login_success.html#access_token=ACCESS_TOKEN...

重定向 uri 可以是任何东西,但 facebook 为这种情况预留了特定的 uri,在这种情况下,您没有托管要接收和处理响应的另一台服务器。

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

因此,程序只关注嵌入式浏览器所在的 url,当它匹配时,redirect_uri它会解析将包含数据作为片段的 url,然后可以关闭浏览器。

于 2013-08-12T22:48:15.180 回答