我正在使用facebook android sdk访问用户的脸书专辑和实习生获取照片。
但是当我执行"https://graph.facebook.com/"+wallAlbumID+"/photos?access_token="+facebook.getAccessToken()
时,它会返回空白数据。 { "data": [] }
我在阅读in stackoverflow question以及in Graph API for Photo时,我需要在创建facebook对象时给予user_photos
权限。
我不知道该怎么做。我阅读了很多论坛,并检查了SOF,但找不到解决方案。
这就是我创建facebook对象的方式
facebook = new Facebook(APP_ID);
任何人都可以帮助我。
答案 0 :(得分:2)
您需要创建要访问的ArrayList
个权限。例如,当我这样做时,在声明变量时。
private static final String[] PERMISSIONS = { "user_photos" };
然后,在实现用户登录区域时:
if (!facebook.isSessionValid()) {
facebook.authorize(this, PERMISSIONS, new LoginDialogListener());
}
希望这有帮助!
答案 1 :(得分:2)
您需要使用Facebook SDK 3.0+。此外,在FB站点的开发人员设置中启用 OAuth客户端登录流程。然后您可以使用以下代码:
首先,将用户登录到应用程序内部的FB以获取Session对象,如果尚未授权,则请求user_photos的权限:
// start Facebook Login
Session.openActiveSession(this, true, new Session.StatusCallback() {
// callback when session changes state
@Override
public void call(Session session, SessionState state, Exception exception) {
if (session.isOpened()) {
// check for permission to see user photos
if (!hasPhotoPermissions())
session.requestNewPublishPermissions(new Session.NewPermissionsRequest(MyActivity.this, "user_photos"));
else {
// photos permission granted, fetch user's albums
fetchAlbumsFromFB(session);
}
}
}
});
以下是 hasPhotoPermissions()方法:
private boolean hasPhotoPermissions() {
Session session = Session.getActiveSession();
return session.getPermissions().contains("user_photos");
}
然后,您的应用会将照片权限屏幕显示给用户以供审批。