分享对话框与Facebook应用程序不兼容[Android]。

4
我正在使用分享对话框,在用户时间线上分享链接,但是在安装了Facebook应用程序时无法正常工作。如果卸载应用程序,则使用默认浏览器时它可以正常工作。 请注意,FB登录无论是否安装了FB应用程序都可以使用。
这是我的代码:
if(click_id==R.id.comboshare_fb) //Button click
    {
        loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                // App code
                String userid = loginResult.getAccessToken().getUserId(); //Gets the userid.
                Toast.makeText(getApplicationContext(), "Login Successful!", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onCancel() {

            }

            @Override
            public void onError(FacebookException error) {

            }

        }); //Login is working

        shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() {
            @Override
            public void onSuccess(Sharer.Result result) {

            }

            @Override
            public void onCancel() {
                Toast.makeText(getApplicationContext(), "Share Cancelled!", Toast.LENGTH_SHORT).show();

            }

            @Override
            public void onError(FacebookException error) {

                Log.d("Final Problem", "onError " + error);

            }


        });
        ShareLinkContent linkContent = new ShareLinkContent.Builder()
                .setQuote("I completed 3X Combo in Wordplay! :)")
                .setContentUrl(Uri.parse("https://i2.wp.com/sbansite.files.wordpress.com/2018/07/yay-you-completed-3-combo-10.png?ssl=1&w=450"))
                .build();

        if(shareDialog.canShow(ShareLinkContent.class))
                {
                    shareDialog.show(linkContent);
                }}

我得到的sharedialog的onError()错误是: D/Final Problem: onError Invalid long: "null" 如果有任何帮助,先感谢您。
补充:我的应用程序仍然处于Facebook的开发模式中。

这个问题似乎只出现在最新的Facebook应用程序中,在旧版本的FB中运行正常。 - varun
我有同样的问题。如果我卸载Facebook应用程序,则共享对话框可能由默认浏览器提示,并且可以正常工作。尝试将facebook-android-sdk升级到最新的4.34.0,但这并没有帮助。 - Ambran
正如Day的回答所建议的那样,这是最新FB应用程序中的一个错误。我正在考虑像他的回答建议的那样,首先尝试使用浏览器进行分享,而不是使用本地应用程序。 - SBan
是的,Day的修复方法对我也有效。我按照他/她在“onError”覆盖中建议的方式使用它。谢谢@Day! - Ambran
看起来Facebook已经修复了他们新应用程序更新中的错误。现在我的以前的代码可以正常工作了。 - SBan
1个回答

4

这是最新Facebook应用程序中引入的错误。

以下是报告问题的链接:https://developers.facebook.com/bugs/647119912303459/

如果您想为使用此版本应用程序的用户添加解决方法,您可以在错误回调中添加类似以下内容:

@Override
public void onError(FacebookException error) {
    if (error != null && error.getMessage().equals("null") {
        // Don't use the app for sharing in case of null-error
        shareDialog.show(linkContent, ShareDialog.Mode.WEB);
    }
}

通过 Webview-Share 进行共享可行。

哇!我花了四天时间试图找出我的错误所在。非常感谢你。 - SBan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接