【问题标题】:Facebook friends birthdays in AndroidAndroid 中的 Facebook 好友生日
【发布时间】:2014-04-03 17:41:30
【问题描述】:

在 Android 中,获取朋友生日的最简单方法是什么?还是关系状态?使用 FQL 还是通过 Facebook API SDK for Android 请求?

谢谢。

【问题讨论】:

    标签: java android facebook


    【解决方案1】:
     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"};
    

    确保您已授予访问朋友生日日期的权限..

    【讨论】:

    【解决方案2】:

    让朋友过生日的最简单方法是什么?还是关系状态?

    使用 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
    

    权限

    【讨论】:

      【解决方案3】:
      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
      

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-22
      • 2014-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多