Как создавать динамические ссылки с помощью Unity

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

https://example.page.link/aSDf

Подготовка

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

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

    • Если в проекте уже используется Firebase, можете пропустить этот шаг.

    • Если у вас нет проекта Unity, вы можете скачать пример приложения.

  • Добавьте в свой проект Unity Unity SDK для Firebase (в частности, FirebaseDynamicLinks.unitypackage).

Обратите внимание, что для добавления Firebase в проект Unity нужно выполнить действия как в консоли Firebase, так и в вашем открытом проекте Unity. Например, вам потребуется скачать файлы конфигурации Firebase из консоли, а затем переместить их в проект Unity.

Задайте префикс URI Dynamic Links

  1. В консоли Firebase откройте раздел Dynamic Links.

  2. Если вы ещё не приняли условия использования и не задали префикс URI для Dynamic Links, сделайте это, когда появится запрос.

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

  3. Рекомендуется указать шаблоны URL, разрешенные в ссылках на контент и резервных ссылках. Это не позволит посторонним лицам создавать Dynamic Links, которые перенаправляют пользователей с вашего домена на сайты, которые вы не контролируете. Подробнее о том, как разрешить определенные шаблоны URL…

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

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

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

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

Использование Firebase Dynamic Links API

Создание длинного Dynamic Link из параметров

Чтобы создать динамическую ссылку, создайте объект DynamicLinkComponents, задайте любые необязательные элементы для дополнительной конфигурации, а затем получите доступ к свойству LongDynamicLink, чтобы получить URL ссылки.

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

var components = new Firebase.DynamicLinks.DynamicLinkComponents(
    // The base Link.
    new System.Uri("https://www.example.com/"),
    // The dynamic link URI prefix.
    "https://example.page.link") {
      IOSParameters = new Firebase.DynamicLinks.IOSParameters("com.example.ios"),
      AndroidParameters = new Firebase.DynamicLinks.AndroidParameters(
        "com.example.android.package_name"),
    };
// do something with: components.LongDynamicLink

Создание короткого видео Dynamic Link

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

Функция GetShortLinkAsync может принимать дополнительный параметр конфигурации DynamicLinkOptions со свойством PathLength, позволяющим управлять созданием ссылки. Для создания короткой ссылки требуется сетевой запрос к серверу Firebase, поэтому метод GetShortLinkAsync выполняется асинхронно. GetShortLinkAsync возвращает Task<Firebase.DynamicLinks.ShortDynamicLink>.

Пример:

var options = new Firebase.DynamicLinks.DynamicLinkOptions {
  PathLength = DynamicLinkPathLength.Unguessable
};

Firebase.DynamicLinks.DynamicLinks.GetShortLinkAsync(components, options).ContinueWith(task => {
  if (task.IsCanceled) {
    Debug.LogError("GetShortLinkAsync was canceled.");
    return;
  }
  if (task.IsFaulted) {
    Debug.LogError("GetShortLinkAsync encountered an error: " + task.Exception);
    return;
  }

  // Short Link has been created.
  Firebase.DynamicLinks.ShortDynamicLink link = task.Result;
  Debug.LogFormat("Generated short link {0}", link.Url);

  var warnings = new System.Collections.Generic.List<string>(link.Warnings);
  if (warnings.Count > 0) {
    // Debug logging for warnings generating the short link.
  }
});

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