Получить все контакты из sendgrid через API

Я работаю над приложением, в котором я добавляю пользователя в sendgrid во время регистрации с помощью API:

PUT /marketing/contacts

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

Скажем, у меня есть 3 списка в sendgrid List A, List B, List C

Теперь я запускаю cron каждый час и проверяю статус пользователя, и в зависимости от условия я хочу переместить пользователя, скажем, из списка A в список B.

Как я проверил, я могу добавить пользователя в новый список, используя тот же API:

PUT /marketing/contacts

И я могу удалить пользователя из предыдущего списка, я могу использовать API:

DELETE /marketing/lists/{id}/contacts

Но для того, в какой список ранее был добавлен пользователь, и чтобы получить идентификатор контакта из sendgrid, мне нужно получить контакты из sendgrid, я использую API:

GET /marketing/contacts

Но этот API возвращает только последние 50 данных, и опции разбиения на страницы тоже нет.

Я также пробовал API:

GET https://api.sendgrid.com/v3/contactdb/recipients?page_size=100&page=1

Но этот API также возвращает мне ошибку

error:
{
  "errors": [
     {
       "field": null,
       "message": "access forbidden"
     }
  ]
}

Но с ключом API все в порядке, потому что маркетинговый API работает с тем же ключом API, и ключ API генерируется с полным доступом.

https://sendgrid.com/docs/API_Reference/api_v3.html https://sendgrid.com/docs/API_Reference/Web_API_v3/Marketing_Campaigns/contactdb.html

Может кто-нибудь, пожалуйста, помогите мне получить все контакты из sendgrid через любой другой API или если есть какие-либо параметры, которые мне не хватает в вышеупомянутом API.


person Indranil Mondal    schedule 15.12.2020    source источник
comment
У меня была такая же проблема, у вас было открытие, как решить?   -  person Develop_SP    schedule 04.03.2021
comment
У меня точно такая же проблема, становится очень грустно. Я даже запустил инструмент Arjun для поиска параметров по определенному URL-адресу, и он не нашел ни одного параметра, я начинаю верить, что на самом деле нет способа разбиения на страницы.   -  person nenadp    schedule 26.04.2021


Ответы (2)


После обращения в службу поддержки получил следующее:

Чтобы получить все существующие контакты, вы можете использовать эту конечную точку: https://api.sendgrid.com/v3/marketing/contacts/exports
POST /marketing/contacts/exports

Это вернет id, который вы используете для GET /v3/marketing/contacts/exports/<id>, получая файл. Так что скачивайте его, открывайте и читайте csv. Не совсем то, что я хотел, но это может сработать для других.

Документы об этом находятся здесь.

person nenadp    schedule 27.04.2021

Для меня наша компания использует устаревший маркетинг, поэтому я должен использовать другую конечную точку POST v3/contactdb/recipient

person Hoang Viet Nguyen    schedule 31.05.2021