【问题标题】:Facebook API for Android: how to get extended info regarding user`s friends?Facebook API for Android:如何获取有关用户朋友的扩展信息?
【发布时间】:2011-01-07 18:17:43
【问题描述】:

我正在开发小型 Android 应用程序,尝试添加 Facebook 支持。

主要问题:我只能获取有关用户朋友的基本信息(ID、姓名)。 应用权限列表(offline_access 在这里只是为了测试,很快就会被移除):

 String[] sPermissions = { "friends_about_me"
                         , "friends_birthday"
                         , "friends_location"
                         , "friends_website"
                         , "offline_access" };
 mLoginButton.init(this, mFacebook,  sPermissions);

以下请求工作正常 - 返回 id:name 对列表,

 mAsyncRunner.request("me/friends", new SampleRequestListener());

但如果我更改它以获得更多信息

 mAsyncRunner.request("me/friends?fields=id,name,birthday,hometown", new SampleRequestListener());

服务器返回错误“必须使用活动访问令牌来查询有关当前用户的信息。” 我使用浏览器测试了这些 Graph API 请求 - 它们都按预期工作。

小备注:我正在使用默认调试证书来签署应用程序并根据 Facebook 指令将其添加为 facebook 应用程序哈希:

注册您的应用程序的 Android 密钥哈希。 Facebook 使用它来确保其他应用在与 Facebook Android 应用对话时无法冒充您的应用。

生成密钥哈希:

keytool -exportcert -alias [别名] -keystore [密钥库] | openssl sha1 -二进制 | openssl base64 在 Facebook 开发者设置中,转到 移动和设备标签。

在 Android 部分,输入密钥 散列在 Key Hash 字段中。

也许还有其他方法可以获取用户的好友信息(生日、位置、性别等)?

【问题讨论】:

    标签: android facebook-graph-api


    【解决方案1】:

    使用

    mFacebook.request(graphpath, bundle);

    方法, Bundle 会有这样的参数

    graphpath = "me/friends"
    bundle.putString("fields","birthday");
    

    并调用上面的请求方法,它会给你生日,但你必须添加friends_birthday 权限。

    【讨论】:

      【解决方案2】:

      当您在 Graph API 中调用 /me/friends 时,它返回的只是朋友的 ID 和姓名。如果您想了解更多关于朋友的信息,您可以在之后致电/Friend_ID

      【讨论】:

      • 您好,感谢您的建议。我试图调用“”me/friends/Friend_ID” - APi 只返回所有朋友的列表 (id:name)。
      • 首先您需要获取 ID,因此您需要致电 /me/friends。然后,您可以遍历所有朋友,并为每个朋友调用/Friend_ID(没有me)。希望这会有所帮助
      【解决方案3】:

      查看this 回答,了解如何获取 Facebook 好友列表以及这些好友中谁安装了您的应用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-08-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-26
        • 2023-03-15
        • 1970-01-01
        相关资源
        最近更新 更多