Метод возврата списка подавления SparkPost API не разрешен

Я пытаюсь вставить запись в список исключений, описанный здесь

Я пробовал это со своей стороны, используя PHP-код, но я также получаю тот же ответ, используя их собственную консоль на предоставленном веб-сайте, используя действительный ключ API, имеющий тот же результат.

Это вызов:

PUT https://api.sparkpost.com/api/v1/suppression-list/[email protected]

Это запрос:

Content-Type: application/json
Authorization: XXXXXXXXXXXXX
Content-Length: 142
{
  "transactional": false,
  "non_transactional": true,
  "description": "User requested to not receive any non-transactional emails."
}    

Вот ответ, который я получаю от сервера:

connection: keep-alive
x-apiary-transaction-id: 5638e31d13b31d0700ae2b0a
cache-control: no-cache, no-store
content-type: application/json; charset=utf-8
date: Tue, 03 Nov 2015 16:38:54 GMT
server: msys-http
content-length: 45
x-newrelic-app-data: PxQDVFVRCQITVlZRDgcFV0YdFHYaFhEHQxFSERdoYWYcShNDHVEdUlIEG1FIVgsFBFxSVg8IG0RQBBQfQFdQVAFWWlsBXVdTUVcPURNNVQMIRVI8
via: 1.1 vegur
{
  "errors": [
    {
      "message": "Method Not Allowed"
    }
  ]
}   

person Julio Rodriguez    schedule 03.11.2015    source источник
comment
вы можете захотеть скрыть свои ключи API   -  person HungryCoder    schedule 03.11.2015
comment
Поскольку SO хранит историю изменений, вам нужно создать новый ключ API (и удалить этот):/   -  person cfs    schedule 03.11.2015
comment
конечно, я изменю ключ API, спасибо за внимание.   -  person Julio Rodriguez    schedule 04.11.2015


Ответы (1)


Когда вы добавляете все в список подавления, вам нужно PUT их https://api.sparkpost.com/api/v1/suppression-list, а тело запроса должно быть таким:

{
  "recipients": [
    {
      "email": "[email protected]",
      "transactional": true,
      "description": "User requested to not receive any transactional emails."
    },
    {
      "email": "[email protected]",
      "non_transactional": true
    }
  ]
}

Документация по API для этой конечной точки находится по адресу https://www.sparkpost.com/api#/reference/suppression-list/bulk-insertupdate/insert-or-update-list-entries

В качестве примечания вы должны убедиться, что в будущем не будете публиковать заголовок Authorization в своих вопросах. Это ваш ключ API — я бы рекомендовал удалить этот ключ и создать новый.

person richleland    schedule 03.11.2015
comment
Это именно то, что я делаю ... делаю запрос PUT, обратите внимание, что запрос выполняется с использованием собственного веб-сайта SparkPost (в их документации они позволяют тестировать свои вызовы). Я также безуспешно пробовал локально из своей среды разработки. - person Julio Rodriguez; 04.11.2015
comment
Вы уверены, что вводите правильный URL-адрес? В вашем примере вы показываете PUT https://api.sparkpost.com/api/v1/suppression-list/[email protected], но на самом деле это должно быть PUT https://api.sparkpost.com/api/v1/suppression-list — обратите внимание, что вы не включаете адрес электронной почты в URL-адрес. Также в приведенном вами примере показан только один объект, а не объект с ключом recipients, который представляет собой массив объектов. - person richleland; 05.11.2015
comment
Мне просто пришлось прочитать еще раз, они объявили эту конечную точку устаревшей: метод PUT для этой конечной точки был удален в пользу метода массовой вставки/обновления. - person Julio Rodriguez; 06.11.2015