我正在尝试使用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?
答案 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
,因为请求有问题。