4

我想使用 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 上分享照片?

4

4 回答 4

1

我找到了解决方案:

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);
        }
    });
于 2015-04-09T13:05:40.390 回答
1

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

参考:https ://developers.facebook.com/docs/sharing/android

相片

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

照片大小必须小于 12MB

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

于 2015-04-08T15:43:59.003 回答
0

尝试这个:

我也遇到过同样的麻烦,我可以说 Facebook 的 SharePhotoContent API 存在一些问题。您可以使用 ShareLinkContent 共享图像。

ShareLinkContent linkContent = new ShareLinkContent.Builder()
                    .setImageUrl("Your url")
                    .build();
shareDialog.show(linkContent);
于 2016-02-29T08:37:09.823 回答
0

您可以使用共享对话框来共享照片。

尝试这个

 Bitmap image = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
                    SharePhoto.Builder photoBuilder = new SharePhoto.Builder();
                    photoBuilder.setBitmap(image);
                    photoBuilder.setCaption("HBD Caption");
                    final SharePhoto sharePhoto = photoBuilder.build();
                    SharePhotoContent content = new SharePhotoContent.Builder().addPhoto(sharePhoto).build();
                    mShareDialog.show(content);

要添加标题,您需要从 facebook 添加发布权限。如果您不这样做,您的图片将在没有标题的情况下发布。

参考:https ://developers.facebook.com/docs/graph-api/reference/user/permissions/

于 2016-12-01T06:28:45.557 回答