身份验证以在我的网站上显示我的墙

时间:2011-06-01 13:59:40

标签: asp.net facebook facebook-c#-sdk

我正在尝试将我的Facebook墙上帖子的JSON对象显示在我的网站上,但对于这么简单的任务来说,这似乎太复杂了。

我是否需要实施服务器端重定向,然后将数据“假装”发布为用户,以便我可以获得令牌或者我在这里误解了什么?!

我如何申请我的Wall Stream的JSON对象,因为我有一个API密钥&秘密等?目前我无法弄清楚如何将这些细节转换为可以与FacebookClient.Get("Me", parameters)实际使用的正确access_token。

我已经阅读过某个地方,我可以获得一个永不过期的infinite session key,但是按照here给出的步骤只会在第二步导致错误。

我已阅读大量文档并尝试查找示例,但我发现的几乎所有内容都是在身份验证后启动的。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

首先,你需要获得一个访问令牌(没有解决这个问题)。这是通过OAuth对话框完成的,用户登录并提供所需的权限。您必须请求“offline_access”和“read_stream”权限才能执行您要执行的操作。获取access_token非常简单。按照此处的说明操作:http://osnapz.wordpress.com/2010/04/23/using-asp-net-with-facebooks-graph-api-and-oauth-2-0-authentication/

另外,阅读Facebook的文档:http://developers.facebook.com/docs/authentication/

您必须将访问令牌存储在某处以供以后使用(这是无限会话密钥)

获得访问令牌后,您可以直接调用图API:

https://graph.facebook.com/me/feed/?access_token=YOUR-TOKEN-HERE

或者您可以使用Facebook C#SDK(推荐)。

仅供参考,您发布的链接已过时,Facebook不会很快支持该方法。

更新 - 获取访问权限的手动方式:

由于您只对数据感兴趣,因此您只需要获取访问令牌ONCE。当然,如果您更改密码,则必须再次执行此操作。

我将详细介绍获取令牌的手动方式。

  1. 确保您使用的是Firefox。它实际上显示了JSON字符串。
  2. 导航到此网址。添加您的应用ID,callback-url(这应该与您注册的域名相匹配)。我添加了很多权限。
  3. https://www.facebook.com/dialog/oauth?display=popup&client_id=YOUR-APP-ID&redirect_uri=YOUR-CALLBACK-URL&scope=offline_access,read_stream,email,read_insights,user_events,user_groups,user_interests,user_likes,user_location,user_notes,user_photo_video_tags,user_photos,user_relationships,user_religion_politics,user_status,user_videos,user_website,user_work_history,read_friendlists,read_requests,friends_likes,friends_location,friends_notes,friends_photo_video_tags,friends_photos,friends_relationships,friends_religion_politics,friends_status,friends_videos,friends_website,friends_work_history,user_checkins,friends_checkins

    1. 一旦您进行身份验证并“允许”,Facebook将重定向到您的回调网址,这是一个“代码”参数。记下这个参数。

    2. 现在调用另一个网址,添加您的应用ID,api密码和代码。

    3. https://graph.facebook.com/oauth/access_token?client_id=YOUR-APP-ID&redirect_uri=YOUR-CALLBACK-URL&client_secret=API-SECRET&code=CODE-YOUR-COPIED-BEFORE

      1. 调用上面的URL将在浏览器中显示访问令牌。保存此访问令牌。现在,您可以使用此令牌代表您进行API调用。

      2. 请记住,如果您更改密码,您将再次完成此过程。

      3. 这是一种手动方式,仅适用于您只对数据感兴趣的场景。我这样做是为了测试目的。