当前位置: 首页 > 知识库问答 >
问题:

Facebook SDK 4.0 ShareDialog

杨骁
2023-03-14

我想使用facebook SDK 4.0从我的Android应用程序共享图像。我让它与ShareDialog一起使用,但是当用户没有安装FB应用程序时,根据developers.facebook,SDK应该使用Web Share对话框代替:

在过去版本的Android SDK中,你的应用程序必须先检查一个本机安装的Facebook应用程序,然后才能打开共享对话框。如果此人没有安装应用程序,你必须提供自己的代码来调用回退对话框。

现在,SDK会自动检查本机Facebook应用程序。如果未安装,则会启动Web共享对话框:

但是当我删除FB应用程序并尝试共享时什么都没有发生。
这是我的代码:

            ShareDialog shareDialog = new ShareDialog(this);

            BitmapFactory.Options bmOptions = new BitmapFactory.Options();

            bmOptions.inPreferredConfig = Bitmap.Config.ARGB_8888;

            Bitmap image = BitmapFactory.decodeFile(imagePath, bmOptions);

            SharePhoto photo = new SharePhoto.Builder().setBitmap(image).build();

            SharePhotoContent content = new SharePhotoContent.Builder().addPhoto(photo).build();

            shareDialog.show(content, ShareDialog.Mode.AUTOMATIC);

编辑

有没有办法在没有安装facebook应用程序的情况下在facebook上分享照片?

共有3个答案

佟涵畅
2023-03-14

试试这个:

我也遇到了同样的问题,我可以说facebook的SharePhotoContent API有一些问题。您可以使用ShareLinkContent共享图像。

ShareLinkContent linkContent = new ShareLinkContent.Builder()
                    .setImageUrl("Your url")
                    .build();
shareDialog.show(linkContent);
慕容成和
2023-03-14

我找到了解决方案

BitmapFactory.Options bmOptions = new BitmapFactory.Options();
    bmOptions.inPreferredConfig = Bitmap.Config.ARGB_8888;

    Bitmap image = BitmapFactory.decodeFile(imagePathForShare, bmOptions);

    SharePhoto photo = new SharePhoto.Builder().setBitmap(image).build();

    SharePhotoContent content = new SharePhotoContent.Builder().addPhoto(photo).build();

    Toast.makeText(getApplicationContext(), getString(R.string.facebook_uploading), Toast.LENGTH_SHORT).show();

    ShareApi.share(content, new FacebookCallback<Sharer.Result>() {
        @Override
        public void onSuccess(Sharer.Result result)
        {
            Toast.makeText(getApplicationContext(), getString(R.string.facebookSuccessful), Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onCancel()
        {
            Log.v("FACEBOOK_TEST", "share api cancel");
        }

        @Override
        public void onError(FacebookException e)
        {
            Log.v("FACEBOOK_TEST", "share api error " + e);
        }
    });
赫连明诚
2023-03-14

请仔细阅读SDK文档。如果没有安装Facebook应用程序,您将无法使用共享对话框共享照片。

推荐:https://developers.facebook.com/docs/sharing/android

照片

人们可以通过共享对话框或自定义界面将应用程序中的照片共享到Facebook。

照片大小必须小于12MB

人们需要安装原生Facebook for Android应用程序,版本7.0或更高版本

 类似资料:

相关问答

相关文章

相关阅读