故事
我在 Playstore 上有一个应用程序可以下载用户的封面照片并将其设置为抽屉的背景。
发生了什么?
它停止工作了我正在使用下面的链接它工作得很好,但它不再工作了,现在我只得到用户的 ID 但没有封面
之前的工作是什么?
https://graph.facebook.com/{my id}?fields=cover&access_token={my token}
疑难解答
我认为这可能是我在我的代码中没有注意到的事情,所以从 Playstore 下载了我的应用程序,我遇到了同样的问题封面没有被下载所以在这一点上我几乎可以肯定问题出在与 Facebook 本身一起做
我相信这与权限有关,因为我得到了回应,但没有得到封面的 source
但如果它与我的用户一起工作,我不知道为什么它不再工作了
尝试解决问题失败
我去了 Facebook 开发者页面并尝试了这个
new GraphRequest(
AccessToken.getCurrentAccessToken(),
"...?fields=cover",
null,
HttpMethod.GET,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
Log.d(TAG, response.toString());
}
}
).executeAsync();
很遗憾,这没有用,在 Facebook 开发者页面中,他们显示了这个 "...?fields={fieldname_of_type_CoverPhoto}"
我相信 fieldname coverPhoto
是 覆盖
就像我看到的here
结果
这将记录
{Response: responseCode: 404, graphObject: null, error:
{HttpStatus: 404, errorCode: 803, errorType: OAuthException, errorMessage: (#803)
Some of the aliases you requested do not exist: ...}}
我尝试删除 3 个点并尝试添加 me?fields=cover
得到了这个:
{Response: responseCode: 404, graphObject: null, error:
{HttpStatus: 404, errorCode: 803, errorType: OAuthException, errorMessage: (#803)
Some of the aliases you requested do not exist: fields=cover}}
编辑
我试过了
Bundle params = new Bundle();
params.putString("fields", "id,email,gender,cover,picture.type(large)");
new GraphRequest(AccessToken.getCurrentAccessToken(), "me", params, HttpMethod.GET,
new GraphRequest.Callback() {
@Override
public void onCompleted(GraphResponse response) {
if (response != null) {
try {
JSONObject data = response.getJSONObject();
Log.d(TAG, data.toString());
} catch (Exception e) {
e.printStackTrace();
Log.d(TAG, "ERROR");
}
}
}
}).executeAsync();
这打印了我所有的信息,但没有封面
最佳答案
我能够解决这个问题
现在我们似乎需要使用 user_photos
权限,我相信这是最近发生的一些变化,因为我的应用程序在 playstore 上几乎一个月没有 user_photos
就可以完美运行
请记住,您需要申请一个新的权限,您可以这样做
if(!AccessToken.getCurrentAccessToken().getPermissions().contains("user_photos")) {
LoginManager.getInstance().logInWithReadPermissions(
this,
Arrays.asList("user_photos"));
}
关于android - Facebook Graph API getCover 不再工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39501999/