使用C#从Facebook获取照片和相册

时间:2011-03-03 08:27:52

标签: c# facebook facebook-c#-sdk facebook-graph-api

我正在尝试使用Facebook C#SDK从Facebook解析并从Facebook获取我的(我的个人帐户而不是我的应用程序)相册。我的目标是在我的帐户中抓取10到12张最近的照片。但是,据我所知,我必须首先抓住相册。

所以,我尝试了很多东西,最后得到了以下url,它返回400 Bad Request:

https://graph.facebook.com/{my_user_id}/albums?access_token={my_access_token}

通过致电:

获得令牌
https://graph.facebook.com/oauth/access_token?client_id={0}&client_secret={1}&grant_type={2}&scope={3}

为什么我会得到400?

2 个答案:

答案 0 :(得分:3)

使用grant_type = client_credentials时,您正在请求应用访问令牌。这将允许您为您的应用程序执行各种管理操作。请参阅http://developers.facebook.com/docs/authentication/中的App登录。

但是,在使用Graph Api的用户部分时,您需要使用oAuth对话框执行用户登录。有不同的方法可以实现这一点,例如Javascript SDK应该可以直接使用。

我没有在没有Javascript SDK的情况下使用Facebook C# SDK在独立的Web应用程序中找到一个很好的方法(在使用CanvasAuthorize属性的画布应用程序中很容易)。

以下是如何使用WinForms应用http://blog.prabir.me/post/Facebook-CSharp-SDK-Writing-your-first-Facebook-Application.aspx进行操作的示例。如果您可以使用WebBrowser控件,它可能在Asp.Net应用程序中工作。我尝试过使用WebClient,但没有任何运气。

<强>更新

通过查看此处的示例http://facebooksdk.codeplex.com/SourceControl/changeset/view/534da45e108f#Samples%2fCSMvcWebsite%2fControllers%2fHomeController.cs,看起来您应该能够在独立站点中使用FacebookAuthorize属性。

答案 1 :(得分:0)

错误代码400表示请求格式不正确。验证最终URL是否正常,然后在浏览器中尝试。

  

请求无法理解   由于语法错误导致的服务器。   客户端不应该重复   请求不加修改。

即。您尝试以下https://graph.facebook.com/someuser/albums?access_token=1234您将预先提供以下内容:

{
   "error": {
      "type": "OAuthException",
      "message": "Invalid OAuth access token."
   }
}

如果您提供OK令牌和真实用户,结果可能会略有不同,但在您的情况下,您会收到400,因为请求有问题。