我正在开发小型 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 部分中,输入密钥
密钥哈希字段中的哈希值。
也许还有另一种方式来获取用户的朋友信息(生日、位置、性别等)?