Быстрый старт

Данный раздел описывает технические моменты, необходимые для начала интеграции.

circle-exclamation

Доступы к сервисам

Для подключения доступны production и stage окружения, для начала интеграции стоит использовать данные для stage.

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

services-stage-mx6hvkth4a-uc.a.run.app
services.stage.galactica.games

Установить зависимости

В данном руководстве приводятся примеры интеграции для NodeJS и TypeScript.

Для начала работы следует установить пакеты @protobuf-ts/grpc-transportarrow-up-right и @grpc/grpc-jsarrow-up-right

# Install via NPM
npm install --save @grpc/grpc-js
npm install --save @protobuf-ts/grpc-transport

Транспорт и авторизация

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

transport.ts
import { GrpcTransport } from "@protobuf-ts/grpc-transport";
import { RpcOptions } from "@protobuf-ts/runtime-rpc";
import { ChannelCredentials } from "@grpc/grpc-js";

export const getTransport = (): GrpcTransport => {
  const host = process.env.SERVICES_API_URL ?? "";
  return new GrpcTransport({
    host,
    channelCredentials: host.includes('localhost')
      ? ChannelCredentials.createInsecure()
      : ChannelCredentials.createSsl(),
  });
};

export const getAuthorization = (accessToken: string): RpcOptions => {
  return {
    meta: {
      authorization: `Bearer ${accessToken}`
    }
  };
};
circle-info

Обратите внимание, что в данном примере используется переменная окружения SERVICES_API_URL. Если у вас имя данной переменной отличается, необходимо отредактировать пример кода под свои нужды.

Первый запрос

В качестве тестового начального запроса можно использовать запрос к сервису определения местоположения по IP адресу. Он не требует авторизации.

Для начала, стоит скачать сгенерированный клиент для этого сервиса, распаковать и скопировать в папку src/services.

file-archive
3KB
archive
Клиент для сервиса определения местоположения

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

Пример приложения для проверки локации прикреплен ниже в виде архива.

file-archive
13KB

Last updated