Facebook SDK 4.0 ShareDialog


Я хочу поделиться изображением из моего приложения для Android с помощью Facebook SDK 4.0. Я получил его для работы с ShareDialog, но когда пользователь не имеет установленного приложения FB, по словам разработчиков.facebook, SDK должен использовать диалоговое окно веб-ресурса вместо:

В предыдущих версиях SDK для Android ваше приложение должно было проверить наличие собственного установленного приложения Facebook, прежде чем оно могло открыть диалоговое окно "поделиться". Если у пользователя не было установленного приложения, вы должны были предоставить свой собственный код, чтобы вызвать запасной вариант диалог.

Теперь SDK автоматически проверяет наличие собственного приложения Facebook. Если это не установлено диалоговое окно веб-ресурс запускает:

Но ничего не происходит, когда я удаляю приложение 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 ответа:

Пожалуйста, внимательно прочитайте документы SDK. Вы не можете поделиться фото с sharedialog без установленного приложения Facebook.

Отношение: https://developers.facebook.com/docs/sharing/android

Фотографии

Пользователи могут обмениваться фотографиями из вашего приложения на Facebook с помощью диалогового окна "поделиться" или пользовательского интерфейса.

Размер фотографий не должен превышать 12 МБ

Людям нужно установить собственное приложение Facebook для Android версии 7.0 или выше

Я нашел решение:

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

Попробуйте это:

Я столкнулся с той же проблемой, и я могу сказать, что есть некоторые проблемы в SharePhotoContent API facebook. Вы можете поделиться изображением с помощью ShareLinkContent.

ShareLinkContent linkContent = new ShareLinkContent.Builder()
                    .setImageUrl("Your url")
                    .build();
shareDialog.show(linkContent);

Вы можете использовать диалоговое окно "Поделиться" для обмена фотографиями.

Попробуйте это

 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/