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

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

https://example.page.link/aSDf

Подготовка

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

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

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

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

  • Добавьте в свой проект Unity Firebase Unity SDK (в частности, 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.

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

Вы можете лучше контролировать брендинг Dynamic Link, используя собственный домен вместо субдомена goo.gl или page.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

Как создать Shorts 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.
  }
});

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