我正在制作一个应用程序,我想要获取Facebook用户的个人资料图片。我试图从Facebook获取专辑,但我从facebook服务器得到null响应。 我已经尝试过多个用户,但它没有工作。任何人都可以帮助我吗?
这是我的代码:
mAsyncRunner.request(fbuserid+"/albums", new RequestListener()
{
@Override
public void onComplete(String response, Object state)
{
try
{
JSONObject albumjson = Util.parseJson(response);
JSONArray albums = albumjson.getJSONArray("data");
for (int i =0; i < albums.length(); i++)
{
JSONObject album = albums.getJSONObject(i);
String album_name = album.getString("name");
String album_id = album.getString("id");
System.out.println("albumname "+album_name +album_id);
}
}
catch (JSONException e)
{
e.printStackTrace();
}
}
@Override
public void onIOException(IOException e, Object state)
{
}
@Override
public void onFileNotFoundException(FileNotFoundException e,Object state)
{
}
@Override
public void onMalformedURLException(MalformedURLException e,Object state)
{
}
@Override
public void onFacebookError(FacebookError e, Object state)
{
}
});
答案 0 :(得分:1)
您应该尝试使用以下代码:
如果你有专辑ID,那么
new GraphRequest(
AccessToken.getCurrentAccessToken(),
"/{album-id}/photos",
null,
HttpMethod.GET,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
/* handle the result */
}
}
).executeAsync();
如果是针对特定的人那么
new GraphRequest(
AccessToken.getCurrentAccessToken(),
"/me/photos",
null,
HttpMethod.GET,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
/* handle the result */
}
}
).executeAsync();
为此,您需要设置权限
1)如果照片是公开的,则为任何有效的访问令牌。
2)用户访问令牌user_photos权限,用于检索会话用户上传的非公开照片。
参考:https://developers.facebook.com/docs/graph-api/reference/v2.0/album/photos
希望它会有所帮助。
详细说明请参考以下链接: