我正在开发一个应用程序,其中出于不同目的使用Facebook SDK。目前,我已经通过Facebook实现了登录。现在,我的下一个任务是获取已登录用户的所有照片,并在网格中显示所有照片。我正在关注官方的Facebook开发者网站作为此任务的参考。以下是我用来获取用户照片的代码。
new Request(
Session.getActiveSession(),
"/me/photos",
getRequestParameters(),
HttpMethod.GET,
new Request.Callback() {
public void onCompleted(Response response) {
/* handle the result */
Log.d("Response ","Response " + response);
mpBar.setVisibility(View.GONE);
}
}
).executeAsync();
private Bundle getRequestParameters()
{
String accessToken = LoginSigbUpCustomerNew.mytoken;
Bundle parameters = new Bundle(1);
parameters.putString("access_token", accessToken);
return parameters;
}
在这里,我得到这样的回应:
{Response: responseCode: 200, graphObject: GraphObject{graphObjectClass=GraphObject, state={"data":[]}}, error: null, isFromCache:false}
我不明白为什么数据数组为空。另外,我正在请求用户的user_photos权限。所以哪里出了问题。我是这个Facebook SDK的新手,不知道如何解决这个问题。如果有人可以帮助我,那就太好了。
提前致谢。
根据Facebook SDK的文档,用于请求照片的代码就可以了,但是我认为您忘记了请求登录用户的许可(在本例中为您)。
从Facebook SDK文档复制: A user access token with user_photos permission is required to see all photos that person is tagged in or has uploaded.
以下链接为您提供了有关如何向登录按钮添加访问令牌的小型教程:https : //developers.facebook.com/docs/android/login-with-facebook/v2.2?locale=en_GB#step3
在您的情况下,它应该是(代码段仅用于活动,片段:单击上面的url并按照那里的教程进行操作。很简单):
...
LoginButton authButton = (LoginButton) findViewById(R.id.ID_OF_YOUR_LOGIN_BUTTON);
authButton.setReadPermissions(Arrays.asList("user_photos"));
...
在您的重写onCreate方法中。
方法二:
...
Session session = Session.getActiveSession();
if (!session.isOpened() && !session.isClosed()) {
session.openForRead(new Session.OpenRequest(this)
.setPermissions(Arrays.asList("user_photos"))
.setCallback(YOUR_CALLBACK_CLASS_VARIABLE));
} else {
// Open an active session. Basically happens when someone is already logged in.
}
...
在发出请求所有用户照片的呼叫之前,您可以在用户尚未登录时简单地打开一个新请求。这可能发生在aView.OnClickListener
类中,Button
因为您似乎不是Facebook的LoginButton。
YOUR_CALLBACK_CLASS_VARIABLE
是您实现Session.StatusCallback的类。我敢肯定,您知道它是什么,它是做什么的。
方法三:
...
Session.NewPermissionsRequest newPermissionsRequest = new Session
.NewPermissionsRequest(this, Arrays.asList("user_photos"));
session.requestNewReadPermissions(newPermissionsRequest);
...
当用户已经登录时(因此在用户登录后),并且您希望向用户请求其他权限以访问其照片或其他任何内容。顺便说一下,这都是在Android版Facebook SDK的文档中编写的。
有关更多信息:https : //developers.facebook.com/docs/android/login-with-facebook/v2.2?locale=en_GB#step3
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句