我正在努力为我的朋友们安排生日,那些安装了我的示例应用的人。以下是我的代码。
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();
}
});
但它在生日提交时为空。 请帮忙解决这个问题。提前谢谢。
答案 0 :(得分:3)
正如@luschn所提到的,所有friends_*
权限都已被删除,包括friends_birthday
。
然而如果符合以下条件,仍然可以获得一些数据:
user_birthday
权限(请注意,您需要获得FB批准)你可以通过添加"生日"到fields
中的me/friends
键:
me/friends?fields=id,name,birthday
或者,您可以在用户注册时将用户数据保存到您自己的数据库中,然后在以后检索它,这样可以获得完全相同的结果。
答案 1 :(得分:0)
查看更改日志:https://developers.facebook.com/docs/apps/changelog
所有friends_ *权限已被删除
包括friends_birthday
,因此无法再获得朋友的生日。