Android中的Facebook朋友生日

在Android中,获得朋友生日的最简单方法是什么? 还是关系状态? 使用FQL或通过Android 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的对象..

如需进一步说明,请查看此链接 …..

 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