我正在开发小型Android应用程序,试图添加Facebook支持。
主要问题:我只能获得有关用户朋友(身份证,姓名)的基本信息。 应用程序权限列表(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请求 - 它们都按预期工作。
小注释:我使用默认调试来签署apllication并根据Facebook指令将其添加为Facebook应用程序哈希:
注册您的应用程序的Android密钥哈希。 Facebook使用此功能确保其他应用在与Facebook Android应用交谈时无法模拟您的应用。
生成密钥哈希:
keytool -exportcert -alias [alias] -keystore [keystore] | openssl sha1 -binary | openssl base64在Facebook开发人员设置中,转到 移动和设备标签。
在Android部分中,输入密钥 密钥哈希字段中的哈希。
也许还有另一种方法来获取用户的frineds信息(bday,位置,性别等)?
答案 0 :(得分:7)
使用
mFacebook.request(graphpath, bundle);
方法,
Bundle
将包含与此类似的参数
graphpath = "me/friends"
bundle.putString("fields","birthday");
并调用上述请求方法,它会为您提供生日,但您必须添加friends_birthday
权限。
答案 1 :(得分:0)
当您在图谱API中调用/me/friends
时,它返回的是朋友的ID和名称。如果您想获得有关朋友的更多信息,请稍后致电/Friend_ID
。
答案 2 :(得分:0)
检查this答案,了解如何获取Facebook好友列表以及这些好友中的哪些人安装了您的应用。