共享对话框不适用于 Facebook 应用 [android]

Posted

技术标签:

【中文标题】共享对话框不适用于 Facebook 应用 [android]【英文标题】:Share dialog isn't working with Facebook app [android] 【发布时间】:2018-07-09 17:38:03 【问题描述】:

我正在使用共享对话框将链接共享到用户的时间轴,但在安装 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);
                

我从 sharedDialog 的 onError() 得到的错误是:D/Final Problem: onError Invalid long: "null"

欢迎任何帮助,在此先感谢。

附:我的应用在 Facebook 仍处于开发模式。

【问题讨论】:

这似乎只发生在最新的 facebook 应用程序中,在较旧的 fb 版本中运行良好 我也有同样的问题。如果我卸载 Facebook 应用程序,则默认浏览器可能会提示共享对话框,并且它可以正常工作。尝试将facebook-android-sdk 升级到最新的4.34.0,但没有帮助。 正如 Day 的回答所暗示的,这是最新的 FB 应用程序中的一个错误。我正在考虑只使用浏览器进行共享,甚至不先尝试本机应用程序,就像他的回答所暗示的那样。 是的,Day 的修复方法也适用于我。我按照他/她在onError 覆盖中的建议使用它。谢谢@Day! 看起来 Facebook 用他们的新应用更新修复了这个错误。现在我以前的代码工作得很好。 【参考方案1】:

这是最新的 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 作品分享

【讨论】:

哇!我花了四天时间试图找出我错在哪里。非常感谢你。

以上是关于共享对话框不适用于 Facebook 应用 [android]的主要内容,如果未能解决你的问题,请参考以下文章

Facebook Messenger 链接共享不适用于消息

Facebook 明确共享的操作不适用于 Cordova 应用程序

Android facebook 登录不适用于已安装的 Facebook 应用程序

Facebook 登录不适用于 Facebook 应用程序

为啥 Facebook 登录不适用于我的免安装应用?

Facebook 应用程序共享对话框有时不会出现