2

Facebook Android Developers Hackbookの例を使用していますが、次のようなFacebookの友達の次の誕生日を取得する方法を知りたいです:今日27歳、10日で28GraphAPI歳など、またはを使用してFQL

  public class graphApiRequestListener extends BaseRequestListener {

    @Override
    public void onComplete(final String response, final Object state) {
        dialog.dismiss();
        // access token is appended by Facebook object, hence params are
        // added here after request is complete
        if (!params.isEmpty()) {
            url += "?" + Util.encodeUrl(params); // Params
        }
        metadataObject = null;
        params.clear();
        try {
            JSONObject json = Util.parseJson(response);
            if (json.has("metadata")) {
                metadataObject = json.getJSONObject("metadata");
                json.remove("metadata");
            } else {
                metadataObject = null;
            }
            setText(json.toString(2));
        } catch (JSONException e) {
            setText(e.getMessage());
            e.printStackTrace();
        } catch (FacebookError e) {
            setText(e.getMessage());
            e.printStackTrace();
        }
    }
4

1 に答える 1

5

ここでFacebookの古いSDKを使用するいくつかのコードはこれを試してください

    Facebook fb = new Facebook(main.APP_ID);
    SessionStore.restore(fb, mActivity);
    mAsyncRunner = new AsyncFacebookRunner(fb);

    String graphPath = "me/friends";
    Bundle bundle_friends = new Bundle();
    bundle_friends.putString("fields", "id,birthday");

    mAsyncRunner.paramsRequest(graphPath, bundle_friends, new AsyncRequestListener(mActivity) {

        @Override
        public void onComplete(JSONObject obj, Object state) {

            try {
                JSONArray data = obj.getJSONArray("data");
                for (int i = 0; i < data.length(); i++) {
                    JSONObject temp = data.getJSONObject(i);
                    if (!temp.isNull("birthday"))
                        bundleForBirthdays.putString(temp.getString("id"), temp.getString("birthday"));
                }


            } catch (JSONException e) {
                e.printStackTrace();
            }

        }
    });
于 2012-12-24T06:12:44.267 に答える