Intereting Posts
DoInBackground вызов AsyncTask затем спит блоки UI Thread Нетрадиционные и изворотливые Android аварии во время загрузки JNI / OpenGL ES Как реализовать добавление нижнего колонтитула по запросу в ListView при загрузке данных Как я могу перечислить приложение для загрузки файлов? Android: Как получить информацию, если экран переходит в режим затемнения? Как удалить контакт? Используйте библиотеку DataBinding для установки ресурса цвет фона или нулевого Как установить язык в распознавании речи на Android? Использование входа в Facebook и Google Plus в приложении SoundCloud для Android Android – копирование файлов из активов в папку данных / данных Обновление программного обеспечения Android-приложения Phonegap программно ADB не признает Nexus 4 – больше советов Как найти серийный номер Android-устройства? Пример общих предпочтений Android для высоких результатов? Как отобразить диалоговое окно «Да / Нет» на Android?

Добавление метаданных в приложение Facebook

Отправляя приглашение на приложение в своем приложении, я пытаюсь найти способ добавления метаданных к нему, чтобы я мог отслеживать внутренне, кто отправил приглашения и насколько они были успешными (Facebook показывает только данные, когда открывается диалоговое окно, и нет Способ отслеживать конкретные воронки).

Мой код для отправки приглашения:

private void openFacebookAppInvite() { AppInviteContent content = new AppInviteContent.Builder() .setApplinkUrl(FACEBOOK_APP_LINK_URL) .setPreviewImageUrl(INVITE_PREVOEW_IMAGE_URL) .build(); // WANT TO ADD METADATA HERE AppInviteDialog.show(this, content); } 

Возможно, это не тот ответ, на который вы надеялись, но я думаю, что это поможет реализовать ваши требования.

Часть 1: отправлять данные напрямую с помощью AppInvite

Насколько мне известно, AppInviteContent.Builder напрямую отправлять пользовательские данные с помощью AppInvites, созданных с помощью AppInviteContent.Builder . Я объясню более сложную возможность в третьей части. Но, возможно, GameRequest – это вариант для вас. GameRequestDialog может быть инициализирован объектом GameRequestContent . Метод setData класса GameRequestContent.Builder "устанавливает дополнительные данные, которые можно использовать для отслеживания".

Часть 2: отслеживание приглашений

Конечно, вы можете отслеживать, что пользователь открыл AppInviteDialog ( AppInviteDialog простой запрос на ваш сервер). К сожалению, невозможно отслеживать, сколько или сколько пользователей предлагается.

Но после того, как приглашенный пользователь принимает приглашение, устанавливает и запускает мобильное приложение (или дает вам разрешения на холст, если у вас тоже есть приложение для холста), вы можете получить все AppRequests ( AppRequests ), AppRequests запрос в /me/apprequests с /me/apprequests API .

Также возможно:

  1. Приложение Canvas: запрос POST , ваш сервер получит после того, как приглашенный пользователь откроет страницу холста, содержит параметр request_ids . Это список объектов -запросов-идентификаторов , разделенных запятыми, которые могут использоваться в запросе графа.
  2. Приложение для мобильных устройств: после того, как приглашенный пользователь установил и запустил приложение в ответ на AppRequest, вы можете получить идентификаторы приложения-запроса из намерения или с помощью AppLinkData.fetchDeferredAppLinkData и appLinkData.getTargetUri().getQueryParameter("request_ids") . См. Раздел «Поддержка входящих ссылок» в документации. Теперь вы можете создать запрос api графика.

Часть 3: отправка данных с помощью AppInvite через App-Link

Как показано в части 2.2., Вы получите targetUrl после того, как приглашенный пользователь откроет приложение. Этот targetUrl указан в AppLink, найденном в AppLinkUrl, который вы использовали для AppInvite. С помощью «Конечной точки динамического приложения» можно отправлять данные приглашенным пользователям. Вот идея, как реализовать это:

  1. Ваш сервер определяет конечную точку с помощью шаблона uri-шаблона POST:http://example.com/users/${USER}/invites/ . $ {USER} является именем пользователя отправителя приглашения.
  2. Перед созданием диалогового окна приглашения клиент отправляет POST-запрос конечной точке с шага 1 и получает ответ UUID в качестве ответа, который ссылается на запланированное приглашение и на пользователя.
  3. Сервер определяет вторую конечную точку GET:http://example.com/users/${USER}/invites/${UUID} . Ответ на эту конечную точку – это страница с определенным AppLink, где al:android:url example://users/${USER}/invites/${UUID} – конечно, placeholder $ {USER} и $ {UUID} Заменяются правильными значениями на шагах 1 и 2.
  4. Клиент использует конечную точку с шага 3 ( http://example.com/users/${USER}/invites/${UUID} ) в качестве URL-адреса приложения при создании AppInviteContent.
  5. Приглашенный пользователь принимает приглашение и открывает приложение. Теперь мы можем получить UUID с targetUrl (см. Шаг 2.2 / «Поддержка входящих ссылок» ).