Подтвердить что ты не робот

Facebook android shareDialog закрывается после открытия

Следуя ЭТО, я использую facebook sdk в своем приложении для Android и для теста, который я добавил ниже кода к моей MainActivity:

CallbackManager callbackManager;
ShareDialog shareDialog;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    FacebookSdk.sdkInitialize(getApplicationContext());
    setContentView(R.layout.activity_main);

    callbackManager = CallbackManager.Factory.create();
    shareDialog = new ShareDialog(this);

    if (ShareDialog.canShow(ShareLinkContent.class)) {
        ShareLinkContent linkContent = new ShareLinkContent.Builder()
                .setContentTitle("Hello Facebook")
                .setContentDescription(
                        "The 'Hello Facebook' sample  showcases simple Facebook integration")
                .setContentUrl(Uri.parse("http://developers.facebook.com/android"))
                .build();

        shareDialog.show(linkContent);
    }
}

и я добавил следующие шаги в манифест:

<uses-permission android:name="android.permission.INTERNET"/>

<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>

<provider android:authorities="com.facebook.app.FacebookContentProvider950310748347640"
  android:name="com.facebook.FacebookContentProvider"
  android:exported="true" />

<activity android:name="com.facebook.FacebookActivity"
  android:configChanges=
             "keyboard|keyboardHidden|screenLayout|screenSize|orientation"
  android:theme="@android:style/Theme.Translucent.NoTitleBar"
  android:label="@string/app_name" />

и когда я проверяю, что shareDialog всплывает, и внезапно он закрывается.

4b9b3361

Ответ 1

Вам нужно сделать свое приложение "Public".

Перейдите в раздел "Статус и обзор" в настройках вашего приложения и включите опцию "Хотите ли вы сделать это приложение и все его текущие функции доступными для широкой публики?"

Ответ 2

Вам нужно указать режим для метода show(). Между FEED,
НАЦИОНАЛЬНЫЙ, WEB И АВТОМАТИЧЕСКИЙ самый удобный из них - последний (АВТОМАТИЧЕСКИЙ), потому что он собирает данные прямо из приложения Facebook, поэтому вам не нужно входить в систему, но несколько раз он закрывается неуверенно. В общем, вот что я делаю:

  • FFED: 1) работает через Google Chrome, 2) старый дизайн 3) необходимо войти в систему
  • NATIVE: 1) Сообщения, использующие приложение facebook, без необходимости дополнительного входа.
  • WEB: Как и FEED, но с другим интерфейсом
  • АВТОМАТИЧЕСКИЙ: (Иногда при запуске он немедленно закрывается..) 1) использует только приложение facebook 2) не нужно повторно заходить в систему 3) делится как любая другая доля Посмотрите здесь лучше: https://developers.facebook.com/docs/reference/android/current/class/ShareDialog.Mode/ Поэтому я бы предложил WEB, потому что он работает всегда:

    shareDialog.show(linkContent, ShareDialog.Mode.WEB);

Ответ 3

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

Ответ 4

Моя ситуация была другая. Было 3 причины, по которым я столкнулся с этой проблемой:

  • Идентификатор приложения App FB недействителен (если у вас два приложения для facebook, и я случайно установил неправильный идентификатор приложения).

  • URL-адрес изображения был недействительным/имел проблему с самоподписанным сертификатом: og:image. Я изменился с https на http, и он сработал.

  • Веб-адрес недействителен: og:url. URL-адрес начинался с www, где правильный путь - http или https, за которым следует www

Надеюсь, это поможет кому-то.

Ответ 5

Это может произойти, если вы вошли в систему в facebook с помощью тестового пользователя, созданного для другого приложения.

Ответ 6

Это связано с тем, что приложение недоступно для публики. Для этого вам сначала нужно иметь ссылку на Политику конфиденциальности. Facebook недавно обновил свою политику, которая требует, чтобы почти каждое приложение установило ссылку на политику конфиденциальности, установленную в панели управления. Вы можете создать его бесплатно, используя https://www.iubenda.com/privacy-policy-generator. Надеюсь, это поможет!