9

我正在尝试在 facebook 上分享一些内容,但我遇到了很多问题。我已经添加了正确的 keyhash,并在 facebook 上创建了应用程序并将其上线。当我尝试分享一些东西时,你可以看到它看起来不错:

在此处输入图像描述

但是在我点击后它是空的: 在此处输入图像描述

是权限问题?我已经在堆栈上阅读了很多关于此的内容,但我找不到有效的答案......这就是代码:

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;
    }
4

3 回答 3

2

我有一个类似的问题。

我通过更改图片的来源来修复它(不要问我为什么会这样,因为我真的不知道)。

我没有从 facebook 或 google play 等网站获取我的图片 URL,而是将图片上传到 gethub。使用 gethub,图片 url 以 .png 结尾。图片、链接和描述按原样发布。

试试这个。我希望它有所帮助。

于 2014-12-10T08:28:10.133 回答
0

从 Facebook SDK 的最新更新开始,Facebook 不允许预填充文本。所以你现在只能分享 URL。这与您使用 ShareDialog 或 Share Intent 无关。

请参阅下面的错误链接以获取更多详细信息

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

于 2014-12-15T07:06:48.127 回答
0

我认为这与权限有关,您需要请求 publish_actions 权限。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());

希望这会有所帮助。

于 2014-12-10T07:54:11.903 回答