【问题标题】:Facebook android app permission: ask for get user profile pictureFacebook android应用程序权限:要求获取用户个人资料图片
【发布时间】:2014-07-24 08:51:13
【问题描述】:

我正在编写使用 facebook api 的 android 应用程序,我需要我的应用程序可以检索用户个人资料图片。

这是我当前的权限:

fb_login_button.setReadPermissions(Arrays.asList("public_profile", "user_friends"));

但我在文档中没有看到任何获取用户个人资料图片的权限,而只有访问所有图片的权限(我对此不感兴趣)。 因此,现在无需任何许可即可访问个人资料图片

【问题讨论】:

    标签: android facebook facebook-android-sdk facebook-permissions


    【解决方案1】:

    public_profile 权限也会为您提供个人资料图片。

    这就是您将获得个人资料图片的方式

    public static Bitmap getFacebookProfilePicture(String userID){
    URL imageURL = new URL("https://graph.facebook.com/" + userID + "/picture?type=large");
    Bitmap bitmap = BitmapFactory.decodeStream(imageUrl.openConnection().getInputStream());
    
    return bitmap;
     }
    
     Bitmap bitmap = getFacebookProfilePicture(userId);
    

    参考:Android - get facebook profile picture

    【讨论】:

    • 那么,如果我有用户 ID(包含在 public_profile 信息中),我是否也可以不从 android 应用程序(例如从 php 脚本)中检索个人资料图片?
    • 是的,如果您有用户 ID。您可以获取头像。
    • 这不是一种可靠的方法,请改用 FQL,即 facebook 查询语言。我使用了同样的东西,但它不起作用,一旦 fb 人员更新了他们的安全性......它早些时候对我有用,然后它显示没有图片,然后我不得不切换到 fql......或者另一种选择是使用 Facebook SDK 的 FacebookProfilePicView。
    【解决方案2】:

    您不需要任何特殊权限即可获取个人资料图片。使用权限“public_profile”,您可以获得用户的 ID。如果有用户id,可以通过graph api获取头像,如下。

    http://graph.facebook.com/user_id/picture?type=square&redirect=false
    

    如果你使用redirect=false,你会得到如下的json。

    {
       "data": {
          "url": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xaf1/t1.0-1/c92.62.775.775/s50x50/564992_463610327023364_1165619683_n.jpg",
          "is_silhouette": false
       }
    }
    

    json 中的“url”会给出用户的头像。 您也可以使用它而无需重定向。

    【讨论】:

      猜你喜欢
      • 2013-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 2012-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多