Facebook分享对话框没有显示任何内容。

9
我正在尝试在Facebook上分享一些内容,但遇到了很多问题。我已经添加了正确的密钥哈希,并在Facebook上创建并发布了应用程序。当我尝试分享某些东西时,它看起来很好,您可以看到:enter image description here 但是在我点击发布后它变成了空白:enter image description here 是否是权限问题?我已经在Stack Overflow上阅读了很多关于此问题的解答,但没有找到有效的解决方案... 这是代码:
public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) 
        {
            case R.id.action_share:         
                Intent intent2=new Intent(Intent.ACTION_SEND);
                intent2.setType("text/plain");
                intent2.putExtra(Intent.EXTRA_TEXT,"'"+ random + "'" + "\n"+"By Random Quotes"); 
                startActivity(Intent.createChooser(intent2, "Share via"));
                break;

                case R.id.randombut:
                     Frasi();

                case android.R.id.home:
                    Intent homeIntent = new Intent(this, MainActivity.class);
                    homeIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    startActivity(homeIntent);
                break;

                case R.id.facebook:
                    FacebookDialog shareDialog = new FacebookDialog.ShareDialogBuilder(this)
                    .setApplicationName("Random Quotes")
                    .setDescription(random)
                .setPicture("https://lh6.ggpht.com/1UJ89ho9pvVLPYS6NsFVQdb7KoQPALMhkw1w7DnNDqcfDYJ-tRxruaf2YLMLyqhnG_g=w300-rw")
                    .setLink("https://play.google.com/store/apps/details?id=com.techappstudios.randomquotes")
                    .build();
                    uiHelper.trackPendingDialogCall(shareDialog.present());

         }
        return true;
    }

3
我开始了一项悬赏,因为我也很感兴趣。 - Alessandro Bovo
3个回答

2

我曾经遇到过类似的问题。

我通过更改图片来源来解决了这个问题(不要问我为什么,因为我真的不知道)。

我没有从Facebook或Google Play等网站获取我的图片URL,而是将图片上传到Github。在Github上,图片的URL以.png结尾。图片、链接和描述都按照预期发布。

你可以试一下,希望能有所帮助。


刚刚我删除了那个图片,代码就正常运行了,但我现在不知道如何添加图片。 - Rahul

0

根据Facebook SDK的最新更新,Facebook不再允许预填文本。因此,您现在只能分享URL。无论您使用ShareDialog还是Share Intent都是如此。

请参阅以下错误链接以了解更多详细信息。

https://developers.facebook.com/bugs/332619626816423


这是关于意图方法的一个错误,但我正在使用共享对话框,所以我认为它是不同的。其他应用程序正在执行此操作。 - Giacomo De Bacco
我认为所有的方法都存在漏洞。即使是sharer.php现在也不能工作。您可以查看此链接https://www.facebook.com/sharer/sharer.php?u=http://www.google.com&t=hello - Vivek Kumar Srivastava
现在,在任何类型的分享方法中都不允许预填内容。您可以查看 Facebook 政策以共享内容 https://developers.facebook.com/policy/#control - Vivek Kumar Srivastava

0

我认为这与权限有关,您需要请求发布动态的权限。第一次使用Facebook时,系统会要求您接受新的权限。一旦您接受,分享对话框将直接显示。

这就是我所做的,但我用您的共享信息替换了代码。

final Session activteSession  = Session.getActiveSession();
        if(!activteSession.isPermissionGranted("publish_actions")) {
            Session.getActiveSession().requestNewPublishPermissions(new Session.NewPermissionsRequest(this, "publish_actions"));
        }
        FacebookDialog shareDialog = new FacebookDialog.ShareDialogBuilder(this)
                .setApplicationName("Random Quotes")
                .setDescription(random)
            .setPicture("https://lh6.ggpht.com/1UJ89ho9pvVLPYS6NsFVQdb7KoQPALMhkw1w7DnNDqcfDYJ-tRxruaf2YLMLyqhnG_g=w300-rw")
                .setLink("https://play.google.com/store/apps/details?id=com.techappstudios.randomquotes")
                .build();
                uiHelper.trackPendingDialogCall(shareDialog.present());
        mFacebookUIHelper.trackPendingDialogCall(shareDialog.present());

希望这能有所帮助。

它给了我一个错误,因为我必须在清单中声明com.facebook.LoginActivity,我已经修复了它,但现在它给了我这个错误:java.lang.UnsupportedOperationException:Session:尝试为当前未打开的会话请求新权限。 - Giacomo De Bacco

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