2

我正在尝试让我的朋友生日,那些安装了我的示例应用程序的人。下面是我的代码。

 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();
                                }
                            });

但它在生日归档中给出了 null 值。请帮助解决这个问题。提前致谢。

4

2 回答 2

3

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

但是,如果出现以下情况,仍然可以获得一些数据:

  1. 您希望为其过生日的朋友也是您应用的用户
  2. 朋友已经提供了user_birthday许可(请注意,您需要获得 FB 的批准)

您可以通过在以下fields键中添加“生日”来做到这一点me/friends

me/friends?fields=id,name,birthday

或者,您可以在用户注册时简单地将用户数据保存到您自己的数据库中,然后稍后再检索它,这将为您提供完全相同的结果。

于 2014-08-07T08:43:18.873 回答
0

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

所有friends_*权限已被删除

这包括friends_birthday,所以不可能再得到朋友的生日。

于 2014-08-06T08:00:03.103 回答