Skip to content

TimePad Integration

Anatoly Kulakov edited this page Apr 2, 2021 · 3 revisions

Интеграция с TimePad

Интеграция позволяет создавать событие из объекта Meetup в сервисе TimePad. Событие создаётся в статусе private. Для того чтобы его увидели все желающие событие необходимо вручную перевести в тип public.

Токен

Для работы автоматизации ей необходимо сообщить индивидуальный Токен. Токен можно получить на специальной странице сервиса. Необходимые права:

  • Редактировать события (edit_events)
  • Создавать события (add_events)
  • Видеть скрытые события своих организаций (view_private_events)
  • Доступ к непубличным свойствам событий организации (view_private_organizations)

Далее токен необходимо указать в файле конфигурации:

"{Community.Id}": {
  "TimePad": {
    "Token": "{Key}"
  }
}

Шаблоны событий

Шаблоны событий лежат в проекте DotNetRuServer.Integration в папке Templates->{Community.Id}->TimePad.cshtml

Тонкости и неочевидности интеграции

  • Описание события в данный момент не изменяется и выглядит таким образом (см. #111):
{Meetup.Day} {Meetup.Month} в гостях у компании {Friend.Name} состоится встреча {Community.Name}
  • Количество билетов не меняется и равно 150 (#111);
  • Город события берётся из города сообщества (#111);
  • Нет возможности указывать партнёров по API, их будет необходимо указывать вручную;
  • Постер берётся из последнего public события, если такое есть, иначе используется дефолтный;
  • В шаблоне события аватары спикеров берутся из аудита. Есть issue #100 на то, что бы переделать это поведение;
  • Для того, чтобы перегенерировать swagger клиент, необходимо собрать проект DotNetRuServer.Integration с параметром /p:GenerateCode=True, клиент будет сгенерирован в соответствии с документацией;
  • На данный момент swagger-документация немного устарела, поэтому пришлось вносить некоторые изменения в сгенерированный клиент (комментировать некоторые необязательные поля);

Связанные issues:

  • Загрузка картинок для вставки аватаров спикеров в анонсы (#100);
  • Получение токена из настроек для вызова API. В #93 делается ConfigurationProvider для этих целей;
  • Новые поля в моделях (#111);