【问题标题】:Getting full-size profile picture获取全尺寸个人资料图片
【发布时间】:2012-01-24 09:01:19
【问题描述】:

是否可以使用任何 facebook api 获取完整尺寸的个人资料图片?

http://graph.facebook.com/{ID}/picture?type=large 太小了。

谢谢:)

【问题讨论】:

    标签: facebook facebook-graph-api


    【解决方案1】:

    将宽度或高度设置为任意大的数字:

    https://graph.facebook.com/username_or_id/picture?width=9999

    如果宽度和高度相同,则将照片裁剪为正方形。

    【讨论】:

    • 不要认为这个数字有什么神奇之处。可能是任何大数字...
    • 这仍然给出了较小的图片。
    • 这太棒了。为什么 facebook 没有明确的文档让我很恼火。
    【解决方案2】:

    我想我使用最简单的方法来获取完整的个人资料图片。您可以获取完整的头像,也可以自己设置头像尺寸:

    $facebook->api(me?fields=picture.width(800).height(800))
    

    您可以根据需要设置widthheight。尽管 Facebook 不会返回所要求的确切尺寸,但它会返回与它们可用的最接近尺寸的图片。

    【讨论】:

      【解决方案3】:

      找到了方法:

      $albums = $facebook->api('/' . $user_id . '/albums');
      foreach($albums['data'] as $album){
          if ($album['name'] == "Profile Pictures"){
              $photos = $facebook->api('/' . $album['id'] . '/photos');
              $profile_pic = $photos['data'][0]['source'];
              break;
          }
      }
      

      【讨论】:

        【解决方案4】:

        如上所述,个人资料相册的封面照片似乎是高分辨率个人资料图片。我会检查“个人资料”的专辑类型而不是名称,因为不同语言的名称可能不一致,但类型应该是。

        要减少请求/解析的数量,可以使用这个 fql: "从 type='profile' 和 owner = user_id 的相册中选择 cover_object_id"

        然后您可以使用以下命令构建图像 url: "https://graph.facebook.com/" + cover_object_id + "/picture&type=normal&access_token=" + access_token

        此图像似乎没有“大”类型,但“正常”类型仍然很大。

        如上所述,这张照片可能比公开的个人资料照片更难访问。您需要 user_photos 或friend_photos 权限才能访问它。

        【讨论】:

          【解决方案5】:

          使用 Javascript,您可以获得像这样的全尺寸个人资料图片

          将您的 accessToken 从您的 FB.init 调用传递给 getface() 函数

          function getface(accessToken){
            FB.api('/me/friends', function (response) {
              for (id in response.data) { 
                  var homie=response.data[id].id         
                  FB.api(homie+'/albums?access_token='+accessToken, function (aresponse) {
                    for (album in aresponse.data) {
                      if (aresponse.data[album].name == "Profile Pictures") {                      
                        FB.api(aresponse.data[album].id + "/photos", function(aresponse) {
                          console.log(aresponse.data[0].images[0].source); 
                        });                  
                      }
                    }   
                  });
              }
            });
          }
          

          【讨论】:

            【解决方案6】:

            对于 Angular:

            getUserPicture(userId) {   
            FB.api('/' + userId, {fields: 'picture.width(800).height(800)'}, function(response) {
              console.log('getUserPicture',response);
            });
            }
            

            【讨论】:

              【解决方案7】:

              上传后,Facebook 服务器上的个人资料图片会缩小到 125x125,据我所知,您无法获得比这更大的图片。你得到的图片有多大?

              【讨论】:

              • 真的吗?如果你点击个人资料,你会看到完整的图片:)
              • 是的,但该图片不属于个人资料图片。 Facebook 存储个人资料图片(125x125 缩略图)以及原始图片。我认为您只能访问个人资料图片,因为一个人的其他图片更具个性。
              • 但是我的应用请求了 user_picture 权限?
              • 哦,那我只能认为你上面给出的网址不是访问图片的正确方式。
              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多