【问题标题】:issue while opening user facebook page by user_link通过 user_link 打开用户 Facebook 页面时出现问题
【发布时间】:2018-08-02 17:13:59
【问题描述】:

我在尝试打开用户的 Facebook 页面时收到 this 错误消息。奇怪的是,如果我与该用户有共同的朋友,页面加载没有问题,但我不认为这是默认行为,否则我无法理解user_link权限的含义。

Facebook 已批准 user_link 权限,我通过了 App Review。

从开发者帐户中,我将应用调用的 API 版本更改为 v3.1

我得到user_link的方式

LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("user_gender", "user_link"));
        LoginManager.getInstance().registerCallback(callbackManager,
                new FacebookCallback<LoginResult>() {
                    @Override
                    public void onSuccess(LoginResult loginResult) {
                       makeGraphRequest(loginResult.getAccessToken());
                    }

                    @Override
                    public void onCancel() {
                    }

                    @Override
                    public void onError(FacebookException error) {

                    }
                });


 public void makeGraphRequest(AccessToken token) {
        GraphRequest request = GraphRequest.newMeRequest(
                token, (object, response) -> {
                    try {
                        userStorage.setUserProfileUrl(object.getString(AppConstants.LINK));
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                });
        Bundle parameters = new Bundle();
        parameters.putString("fields", "name,gender,link,picture.width(700).height(700)");
        request.setParameters(parameters);
        request.executeAsync();
    }

并使用this 回答打开页面。

  Intent intent;
                try {
                    context.getPackageManager().getPackageInfo("com.facebook.katana", 0);
                    intent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://facewebmodal/f?href=" + currentUser.getLink()));
                    context.startActivity(intent);
                } catch (Exception e) {
                    intent = new Intent(context, FacebookWebViewActivity.class);
                    intent.putExtra(AppConstants.USER_LINK, currentUser.getLink());
                    context.startActivity(intent);
                }

build.gradle

implementation 'com.facebook.android:facebook-login:4.33.0'

如果有人能提出任何解决方案,我将不胜感激。我在 facebook 新 API 版本之前也遇到过这个问题。

【问题讨论】:

  • @ Levon Petroysen ,我有有效的用户 _ 链接用例,但除了我的个人资料之外,我无法打开其他人的个人资料,因为我的应用审查正在等待中。我已经创建了测试应用程序,以便我可以使用 user_link 权限并且我正在正确接收 user_link 但我想在我的应用程序中向其他朋友显示个人资料但是当我尝试打开我的朋友 url 时,该链接返回其给出的链接损坏错误。跨度>

标签: android facebook facebook-graph-api


【解决方案1】:

this帖子我们可以找到以下文字

对于大多数应用,链接只会重定向到个人的 Facebook 个人扩展网络中已登录人员的个人资料。

所以,我想没有办法 100% 确定用户页面会正确加载。

【讨论】:

  • 我现在正在努力解决同样的问题。什么是“扩展网络”?没有办法百分百确定是什么意思?它是编程,东西需要 100% 准确,那是什么样的 API :) 此外,当用户无法访问时,他们只会得到一个 PAGE NOT FOUND,而不是一些解释或任何东西。这使我们的网站看起来有问题..
【解决方案2】:

https://developers.facebook.com/docs/graph-api/changelog/version3.0#login

...属于 public_profile 的以下字段已弃用...

正如您在更改日志中看到的,“链接”和“性别”字段已被弃用。

编辑:但他们引入了新的权限user_linkuser_gender,以便用户可以明确要求这些特定字段。 (感谢 CBroe 指出)

【讨论】:

  • 我认为这在更改日志中有点不走运,因为它们是 public_profile 允许您访问的一部分,因此已被“弃用”。但他们引入了新的权限user_linkuser_gender,以便用户可以明确要求这些特定字段。
  • 你试过最新的api版本了吗?顺便说一句,在 api 参考中,它仍然说“链接”,所以也许只是权限被称为“user_link”,并且字段仍然相同?之前,它没有单独的权限。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-19
  • 1970-01-01
  • 2021-04-21
  • 1970-01-01
  • 1970-01-01
  • 2017-10-08
相关资源
最近更新 更多