朋友的生日使用facebook api 2.0

时间:2014-08-06 06:11:38

标签: facebook-graph-api android-simple-facebook

我正在努力为我的朋友们安排生日,那些安装了我的示例应用的人。以下是我的代码。

 new Request(simpleFacebook.getSession(), "/" + id, null, HttpMethod.GET,
                                    new Request.Callback() {
                                        @Override
                                        public void onCompleted(Response response) {
                                            String rawResponse = response.getRawResponse();
                                            AppLog.showLog(TAG, "Friend response is " + rawResponse);
                                        }
                                    }
                            ).executeAsync();

但作为回应,没有任何生日"于此。

我还使用了simplefacebook库。使用以下代码

PictureAttributes pictureAttributes = Attributes.createPictureAttributes();
                            pictureAttributes.setType(PictureAttributes.PictureType.SQUARE);
                            pictureAttributes.setWidth(250);
                            pictureAttributes.setHeight(250);
                            Profile.Properties properties = new Profile.Properties.Builder()
                                    .add(Profile.Properties.NAME)
                                    .add(Profile.Properties.BIRTHDAY)
                                    .add(Profile.Properties.PICTURE)
                                    .add(Profile.Properties.ID)
                                    .build();
                            simpleFacebook.getProfile(id, properties, new OnProfileListener() {
                                @Override
                                public void onComplete(Profile response) {
                                    String id = response.getId();
                                    String name = response.getName();
                                    String birthday = response.getBirthday();
                                    String pictureUrl = response.getPicture();
                                    AppLog.showLog(TAG, "Single friend Detail: " + id + "\t" +
                                            name + "\t" + birthday + "\t" + pictureUrl);
                                    FbFriendsDao fbFriendsDao = new FbFriendsDao(LoginActivity.this);
                                    fbFriendsDao.openForWrite();
                                    fbFriendsDao.insertFriends(new FbFriendDto(id, name, birthday, pictureUrl));
                                }

                                @Override
                                public void onException(Throwable throwable) {
                                    super.onException(throwable);
                                }

                                @Override
                                public void onFail(String reason) {
                                    super.onFail(reason);
                                }

                                @Override
                                public void onThinking() {
                                    super.onThinking();
                                }
                            });

但它在生日提交时为空。 请帮忙解决这个问题。提前谢谢。

2 个答案:

答案 0 :(得分:3)

正如@luschn所提到的,所有friends_*权限都已被删除,包括friends_birthday

然而如果符合以下条件,仍然可以获得一些数据:

  1. 您想要生日的朋友也是您应用的用户
  2. 朋友已提供user_birthday权限(请注意,您需要获得FB批准)
  3. 你可以通过添加"生日"到fields中的me/friends键:

    me/friends?fields=id,name,birthday
    

    或者,您可以在用户注册时将用户数据保存到您自己的数据库中,然后在以后检索它,这样可以获得完全相同的结果。

答案 1 :(得分:0)

查看更改日志:https://developers.facebook.com/docs/apps/changelog

  

所有friends_ *权限已被删除

包括friends_birthday,因此无法再获得朋友的生日。