Создание динамических ссылок с помощью C++

Вы можете создавать короткие или длинные динамические ссылки с помощью API динамических ссылок Firebase. API использует несколько дополнительных структур параметров для создания ссылок. Короткие ссылки также могут быть созданы из ранее созданной длинной ссылки. Firebase Dynamic Links генерирует URL-адрес, подобный следующему:

https://example.page.link/WXYZ

C++ SDK работает как для Android, так и для iOS, при этом для каждой платформы требуется дополнительная настройка.d

Прежде чем вы начнете

Прежде чем вы сможете использовать Firebase Dynamic Links , вам необходимо:

  • Зарегистрируйте свой проект C++ и настройте его для использования Firebase.

    Если ваш проект C++ уже использует Firebase, значит, он уже зарегистрирован и настроен для Firebase.

  • Добавьте Firebase C++ SDK в свой проект C++.

Обратите внимание, что добавление Firebase в ваш проект C++ включает в себя задачи как в консоли Firebase , так и в вашем открытом проекте C++ (например, вы загружаете файлы конфигурации Firebase из консоли, а затем перемещаете их в свой проект C++).

Андроид

  1. В консоли Firebase откройте раздел «Динамические ссылки» .
  2. Если вы еще не приняли условия обслуживания и не установили префикс URI для своих динамических ссылок, сделайте это при появлении соответствующего запроса.

    Если у вас уже есть префикс URI динамических ссылок, обратите на него внимание. При программном создании динамических ссылок необходимо указать префикс URI динамических ссылок.

  3. Рекомендуется : укажите шаблоны URL-адресов, разрешенные в глубоких ссылках и резервных ссылках. Поступая таким образом, вы предотвращаете создание неавторизованными лицами динамических ссылок, которые перенаправляют с вашего домена на сайты, которые вы не контролируете. См. Шаблоны URL-адресов белого списка .

iOS

  1. В консоли Firebase откройте раздел «Динамические ссылки» .
  2. Если вы еще не приняли условия обслуживания и не установили префикс URI для своих динамических ссылок, сделайте это при появлении соответствующего запроса.

    Если у вас уже есть префикс URI динамических ссылок, обратите на него внимание. Вам необходимо предоставить домен динамических ссылок при программном создании динамических ссылок.

  3. Клиентская библиотека Firebase Dynamic Links C++ использует пользовательские схемы URL-адресов в iOS для обработки ссылок. Вы должны добавить в свое приложение собственные схемы URL-адресов, чтобы поддерживать получение динамических ссылок:
    1. Чтобы открыть конфигурацию проекта, дважды щелкните имя проекта в левом дереве. Выберите свое приложение в разделе «ЦЕЛИ» , затем выберите вкладку «Информация» и разверните раздел «Типы URL-адресов ».
    2. Нажмите кнопку + и добавьте схему URL-адреса для вашего обратного идентификатора клиента. Чтобы найти это значение, откройте файл конфигурации GoogleService-Info.plist и найдите ключ REVERSED_CLIENT_ID . Скопируйте значение этого ключа и вставьте его в поле «Схемы URL-адресов» на странице конфигурации. Остальные поля оставьте пустыми.
    3. Нажмите кнопку + и добавьте вторую схему URL-адресов. Он совпадает с идентификатором пакета вашего приложения. Например, если идентификатор вашего пакета — com.example.ios , введите это значение в поле «Схемы URL-адресов» . Идентификатор пакета вашего приложения можно найти на вкладке «Общие» конфигурации проекта ( Идентификация > Идентификатор пакета ).

Используйте консоль Firebase

Если вы хотите создать одну динамическую ссылку либо для целей тестирования, либо для того, чтобы ваша маркетинговая команда могла легко создать ссылку, которую можно использовать в чем-то вроде сообщения в социальной сети, самый простой способ — посетить консоль Firebase и создать ее. вручную, следуя пошаговой форме.

Пользовательские домены

Вы можете лучше контролировать брендинг Dynamic Link, используя собственный домен вместо субдомена goo.gl или page.link . Следуйте этим инструкциям , чтобы настроить собственный домен для вашего проекта.

Использование API динамических ссылок Firebase

Создать и инициализировать приложение

Прежде чем вы сможете создавать динамические ссылки, вам необходимо создать и инициализировать объект firebase::App .

Включите файл заголовка для firebase::App :

#include "firebase/app.h"

Следующая часть зависит от вашей платформы:

Андроид

Создайте firebase::App , передав в качестве аргументов среду JNI и ссылку на jobject задания на активность Java:

app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"), jni_env, activity);

iOS

Создайте firebase::App :

app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"));

Инициализировать библиотеку динамических ссылок

Перед созданием динамической ссылки необходимо сначала инициализировать библиотеку динамических ссылок:

::firebase::dynamic_links::Initialize(app, null);

Создание длинной динамической ссылки из параметров

Чтобы создать динамическую ссылку, создайте объект DynamicLinkComponents, задав любой из необязательных членов для дополнительной конфигурации и передав его в dynamic_links::GetShortLink или dynamic_links::GetLongLink .

В следующем минимальном примере создается длинная динамическая ссылка на https://www.example.com/, которая открывается с помощью вашего приложения Android com.example.android.package_name и приложения iOS com.example.ios:

firebase::dynamic_links::IOSParameters ios_parameters("com.example.ios");

firebase::dynamic_links::AndroidParameters android_parameters(
    "com.example.android.package_name");

firebase::dynamic_links::DynamicLinkComponents components(
    "https://www.example.com/", "example.page.link");
components.android_parameters = &android_parameters;
components.ios_parameters = &ios_parameters;

firebase::dynamic_links::GeneratedDynamicLink long_link =
    firebase::dynamic_links::GetLongLink(components);

Создание короткой динамической ссылки

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

GetShortLink опционально принимает дополнительный параметр конфигурации DynamicLinkOptions с PathLength ; это позволяет вам контролировать способ создания ссылки. Для создания короткой ссылки требуется сетевой запрос к бэкэнду Firebase, поэтому GetShortLink является асинхронным и возвращает Future<GeneratedLink> .

Например:

firebase::dynamic_links::DynamicLinkOptions short_link_options;
short_link_options.path_length = firebase::dynamic_links::kPathLengthShort;

firebase::Future<firebase::dynamic_links::GeneratedDynamicLink> result =
    firebase::dynamic_links::GetShortLink(components, short_link_options);

Если в вашей программе есть цикл обновления, который выполняется регулярно (скажем, 30 или 60 раз в секунду), вы можете проверять результаты один раз за каждое обновление:

if (result.status() == firebase::kFutureStatusComplete) {
  if (result.error() == firebase::dynamic_links::kErrorCodeSuccess) {
    firebase::dynamic_links::GeneratedDynamicLink link = *result.result();
    printf("Create short link succeeded: %s\n", link.url.c_str());
  } else {
    printf("Created short link failed with error '%s'\n",
           result.error_message());
  }
}