Facebook shareDialog ничего не показывает
Я пытаюсь поделиться контентом на Facebook, но у меня много проблем. Я добавил правильный хэш, создал приложение на 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;
}
3 ответа
У меня была похожая проблема.
Я исправил это, изменив, откуда появилась картинка (не спрашивайте меня, почему это сработало, потому что я действительно не знаю).
Вместо того, чтобы брать URL-адрес моей картинки с таких сайтов, как Facebook или Google Play, я загрузил картинку в gethub. При использовании gethub URL-адрес картинки заканчивался на.png. Картинка, ссылка и описание размещены так, как они должны были.
Дайте это попробовать. Я надеюсь, что это помогает.
Начиная с последнего обновления Facebook SDK, Facebook не позволяет предварительно заполнять текст. Так что вы можете поделиться только URL прямо сейчас. Это не имеет значения, что вы используете ShareDialog или Share Intent.
Пожалуйста, смотрите ниже ссылку на ошибку для более подробной информации
Я думаю, что это связано с разрешением, вам нужно запросить разрешение publish_actions. Впервые Facebook попросит принять новое разрешение. После того, как вы приняли, sharedialog покажет напрямую.
Это то, что я сделал, но код, который я заменяю вашей информацией для обмена.
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());
Надеюсь, это поможет.