Как подружить Drupal 9/10 с Sendpulse и другими сервисами рассылки?

Главные вкладки

Аватар пользователя chelwolf chelwolf 27 ноября 2023 в 15:06

Появилась задача отправлять данные с сайта в адресную книгу сервиса рассылки Sendpulse.

У меня есть тип материала, где есть поле имени и email. Нужно, чтобы при создании нового материала такого типа данные автоматически вносились в адресную книгу Sendpulse.

SendPulse работает на REST API по протоколу HTTPS и, по сути, представляет собой набор методов, используемых для выполнения запросов и получения ответов для каждой операции. Все ответы возвращаются в виде структур JSON.

Документация по API говорит, что для передачи нового ящика в нужную мне адресную книгу необходимо сделать POST-запрос на https://api.sendpulse.com/addressbooks/{id}/emails, где ID - это уникальный номер адресной книги.

Авторизация:
https://api.sendpulse.com/oauth/access_token

Пример запроса авторизации:

{
   "grant_type":"client_credentials",
   "client_id":"237b4af9c99d0f89bdbd876dcd5a0000",
   "client_secret":"a99e7d506d3701c5c04de3db1913eeee"
}

Пример POST запроса с именем и email:

{
   "emails":[
      {
         "email":"test@test.com",
         "variables":{
            "name":"Test",
         }
      },
      {
         "email":"test2@test.com"        
      }
   ]
}

Вопрос, можно ли это реализовать без написания своего компонента, например через Views или модуль ECA (https://www.drupal.org/project/eca)? Как вы решаете подобные задачи?

У SendPulse есть хороший модуль для 7 версии, а вот для 8 и выше решение не сделано, что странно.

Лучший ответ

Аватар пользователя chelwolf chelwolf 16 января в 17:00

Оказывается есть ещё один модуль, который позволяет интегрировать сайт с сервисом, и он поддерживает 9 и 10 версию: https://www.drupal.org/project/sendpulse_api

После установки вводите ключи API в настройках модуля, далее в настройках нужной ноды заходите в настройки полей и создаёте поле типа "Sendpulse Api Lists", которое будет видно только администраторам сайта. Далее при создании поля указывайте где храните email-поле, а также ставите нужные галочки, там их всего две и вы сразу все поймёте.

Для моих базовых задач этого модуля пока достаточно.

Как писать запросы REST API, которые требует данный модуль, а также как произвести авторизацию на стороннем сервисе и более тонкую настройку под свои задачи я пока разбираюсь. Если у кого-то есть практический опыт - пожалуйста поделитесь примером.

Комментарии

Аватар пользователя chelwolf chelwolf 16 января в 17:00

Оказывается есть ещё один модуль, который позволяет интегрировать сайт с сервисом, и он поддерживает 9 и 10 версию: https://www.drupal.org/project/sendpulse_api

После установки вводите ключи API в настройках модуля, далее в настройках нужной ноды заходите в настройки полей и создаёте поле типа "Sendpulse Api Lists", которое будет видно только администраторам сайта. Далее при создании поля указывайте где храните email-поле, а также ставите нужные галочки, там их всего две и вы сразу все поймёте.

Для моих базовых задач этого модуля пока достаточно.

Как писать запросы REST API, которые требует данный модуль, а также как произвести авторизацию на стороннем сервисе и более тонкую настройку под свои задачи я пока разбираюсь. Если у кого-то есть практический опыт - пожалуйста поделитесь примером.