Facebook SDK 4.0 ShareDialog

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

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

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

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

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

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

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

    Я столкнулся с такой же проблемой, и могу сказать, что в API SharePhotoContent есть фальшивка. Вы можете совместно использовать изображение с помощью 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/