【发布时间】:2014-04-03 17:41:30
【问题描述】:
在 Android 中,获取朋友生日的最简单方法是什么?还是关系状态?使用 FQL 还是通过 Facebook API SDK for Android 请求?
谢谢。
【问题讨论】:
在 Android 中,获取朋友生日的最简单方法是什么?还是关系状态?使用 FQL 还是通过 Facebook API SDK for Android 请求?
谢谢。
【问题讨论】:
Bundle params = new Bundle();
params.putString("fields","birthday");
JSONObject jObject1 = new JSONObject(authenticatedFacebook.request("me/friends",params));
现在,如果您打印 jobject1,您将获得所有朋友的生日列表..
响应将采用 JSON 格式,您必须从中获取值..
authenticatedFacebook 是你反对 Facebook..
如需进一步说明,请查看link.....
private static final String[] PERMISSIONS =
new String[] {"friends_birthday","read_stream", "offline_access"};
确保您已授予访问朋友生日日期的权限..
【讨论】:
让朋友过生日的最简单方法是什么?还是关系状态?
使用 FQL,我们可以在一个查询中获取用户朋友的生日和关系状态,如下所示:
SELECT uid, name, birthday_date, relationship_status
FROM user
WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=me())
可以使用 Facebook Android SDK 在 Android 上实现,如下所示:
String query = "SELECT uid, name, birthday_date, relationship_status FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=me())"
Bundle params = new Bundle();
params.putString("method", "fql.query");
params.putString("query", query);
mAsyncFacebookRunner.request(null, params, new FQLRequestListener())
FQLRequestListener 扩展 RequestListener 的地方。
JSON 响应如下所示:
{
"data": [
{
"uid": 1234567890,
"name": "John Smith",
"birthday_date": "06/16",
"relationship_status": "Married"
},
{
"uid": etc...
你需要
friends_birthday
权限
【讨论】:
try {
parameters.putString("format", "json");
parameters.putString(TOKEN, mAccessToken);
String url = "https://graph.facebook.com/me/friends?fields=id,name,birthday,location";
String response = Util.openUrl(url, "GET", parameters);
JSONObject obj = Util.parseJson(response);
Log.i("json Response", obj.toString());
JSONArray array = obj.optJSONArray("data");
if (array != null) {
for (int i = 0; i < array.length(); i++) {
String name = array.getJSONObject(i).getString("name");
String id = array.getJSONObject(i).getString("id");
Log.i(name,id);
}
}
}
您需要添加权限
friends_birthday
friends_location