android - Facebook Graph API getCover 不再工作

标签 android facebook-graph-api

故事

我在 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/

相关文章:

java - (#200) 需要扩展权限 : publish_actions

php - Facebook api 2.7 - 未指定指标

java - ActivityNotFoundException:无法找到显式 Activity 类

android - 重用从 Realm 数据库中删除的对象

php - 随机唯一数字,如 IP 地址 mysql

android - 如何在Android应用程序的TextView中将文本的第一个字母大写

Android,通过 DDMS 跟踪内存, "Get Allocations"没有任何作用

c# - 使用 C# 和 asp.net 核心的 Facebook 集成

android - 为什么我不能在 FacebookCallback 之外使用我的 ArrayList 变量

facebook - 在页面 API 帖子中提及 Facebook 页面