安卓:获取朋友的生日使用图形API的Facebook SDK 3.0 [英] Android: Getting Friends Birthday Using Graph API Facebook SDK 3.0

查看:123
本文介绍了安卓:获取朋友的生日使用图形API的Facebook SDK 3.0的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

可能重复:
  <一href="http://stackoverflow.com/questions/13984873/android-how-to-get-friends-birth-dates-from-facebook-calendar-using-graph-api">Android:如何使用获得来自Facebook日历的朋友生日图形API

参见:<一href="http://stackoverflow.com/a/13926065/1770916">http://stackoverflow.com/a/13926065/1770916

我设置获取朋友的生日和列表的权限。 code是如下。

I set permissions for getting friends birthday and list. code is below.

private void signInWithFacebook() {

    mSessionTracker = new SessionTracker(getBaseContext(), new StatusCallback() {

        @Override
        public void call(Session session, SessionState state, Exception exception) {
        }
    }, null, false);

    String applicationId = Utility.getMetadataApplicationId(getBaseContext());
    mCurrentSession = mSessionTracker.getSession();

    if (mCurrentSession == null || mCurrentSession.getState().isClosed()) {
        mSessionTracker.setSession(null);
        Session session = new Session.Builder(getBaseContext()).setApplicationId(applicationId).build();
        Session.setActiveSession(session);
        mCurrentSession = session;
    }

    if (!mCurrentSession.isOpened()) {
        Session.OpenRequest openRequest = null;
        openRequest = new Session.OpenRequest(MainActivity.this);

        if (openRequest != null) {
            openRequest.setDefaultAudience(SessionDefaultAudience.FRIENDS);
            openRequest.setPermissions(Arrays.asList("user_birthday", "email", "user_location", "friends_birthday","read_friendlists" ));
            openRequest.setLoginBehavior(SessionLoginBehavior.SSO_WITH_FALLBACK);
            mCurrentSession.openForRead(openRequest);
        }
    }
}

但我只得到朋友ID和名称而已。

But I am getting only Friend ID and Name only.

@Override
  public void onActivityResult(int requestCode, int resultCode, Intent data) {
      super.onActivityResult(requestCode, resultCode, data);
      Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);

   if (mCurrentSession.isOpened()) {
       Request.executeMeRequestAsync(mCurrentSession, new Request.GraphUserCallback() {

              // callback after Graph API response with user object
              @Override
              public void onCompleted(GraphUser user, Response response) {
                  Log.d("AL", user.getId() + " " + user.getName() + " " + user.getInnerJSONObject());
              }
            });


        Request.executeMyFriendsRequestAsync(mCurrentSession, new Request.GraphUserListCallback() {

            @Override
            public void onCompleted(List<GraphUser> users, Response response) {
                Log.d("AL",""+response.toString());
                for (int i=0;i<users.size();i++){
                    Log.d("AL",""+users.get(i).toString());
                    welcome.setText("Done");
                }

            }
        });
        }
  }

通过使用codeI上午上面让用户如电子邮件,生日等额外的东西添加权限后,却没有得到更多的朋友认为像生日。

By using above code i am getting users additional things like email, birthday etc after adding permissions but not getting friends additional thinks like birthday.

我在哪里做错了???

where i am doing wrong???

推荐答案

有关获取好友信息,我们需要得到的HttpConnection 为以下网​​址

For Getting Friends Information we need to get HttpConnection for following url

"https://graph.facebook.com/me/friends?access_token="+ mAccessToken + "&fields=id,first_name,last_name,location,picture,birthday");

下面添加字段,您需要。 我认为它会工作。

Here add Fields which you require. I think it will work ..

这篇关于安卓:获取朋友的生日使用图形API的Facebook SDK 3.0的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆