从facebook oAuth in mvc获取个人资料图片

时间:2016-03-24 11:09:17

标签: asp.net asp.net-mvc facebook-graph-api oauth

我已阅读以下帖子Post 1,并按照ak7的回答获取fb图片的网址,但当我浏览网址时,会显示带有灰色背景和问号的照片。然后我尝试按照Second post Mike Troinfo的回答并添加图片作为查询字符串的参数,但info变量没有任何与图像对应的参数。请帮助我找出一个解决方案,从Facebook获取用户DP并将其存储在数据库中

document.body.contains(isIntalledNode)

1 个答案:

答案 0 :(得分:1)

在获取图片之前,您已获得用户的访问令牌。然后你点击该网址获取图片。请参阅此链接first

May be this link help you to get authentication token

最后你必须像那样打网址。

https://graph.facebook.com/me/picture?redirect&access_token=CAACEdEose0cBACwZBfdwRTNjsxu1HRxyhQ78lIKGonbKaNRidTtM9QjiwuVuD6DzXsNL1qLGkc1P3sHFnElQ287I1VUBfamvdV0pfBs8dDgbOShqRh2UuviXyv4ZAZAcEEeqlZCKb39nGuTZAjssXCKhS8NZBXun9KfWwZCV29s32K37ajnYIOBelHh3gZCaJsixwXkhPXiQ5ZA2MY2flK4sz

使用这个你将获得一个json

{
 "data": {
  "is_silhouette": true,
  "url": "https://scontent.xx.fbcdn.net/hprofile-xfa1/v/t1.0-1/s200x200/10354686_10150004552801856_220367501106153455_n.jpg?_nc_eui=ARhjdKn0xJ2BpM9I6X_JD0UDCnmaSk6REHSU6yD01EeYw9avdnIb6dqiVr74&oh=3f560f9bf95ca602bb19c2d7b8870e1a&oe=57869A50"
  }
 }

然后从该网址中保存图像。有很多技术可以从网址中保存图像。

{
byte [] data = webClient.DownloadData("https://fbcdn-sphotos-h-a.akamaihd.net/hphotos-ak-xpf1/v/t34.0-12/10555140_10201501435212873_1318258071_n.jpg?oh=97ebc03895b7acee9aebbde7d6b002bf&oe=53C9ABB0&__gda__=1405685729_110e04e71d9");

  using (MemoryStream mem = new MemoryStream(data)) 
  {
   using (var yourImage = Image.FromStream(mem)) 
   { 
      // If you want it as Png
       yourImage.Save("path_to_your_file.png", ImageFormat.Png) ; 

      // If you want it as Jpeg
       yourImage.Save("path_to_your_file.jpg", ImageFormat.Jpeg) ; 
   }
 } 

}

有关详细信息,请see此处。