Alexa SMAPI - пакет навыков экспорта - 405 Метод не разрешен - PullRequest
0 голосов
/ 08 мая 2019

Согласно документации на: Создание запроса на экспорт для существующего навыка

POST / v1 / skill / {skillId} / stage / {stage} / export

Но в документах не указано, каким должен быть запрос POST body, поэтому я попытался не отправлять тело и попытался отправить пустой объект JSON. Те же результаты.

Я использую cURL с PHP для отправки запроса POST на полный URL:

$url = "https://api.amazonalexa.com/v1/skills/$skillId/stages/$stage/exports";

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: '.$access_token));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTP_VERSION, 'CURLOPT_HTTP_VERSION_NONE');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS,json_encode(array()));

//enable and get headers, this API response has no body, only headers
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);
$result = curl_exec($ch);
curl_close($ch);

Но я получаю сообщение об ошибке:

HTTP / 1.1 405 Метод не разрешен


Я знаю, что переменные skillId и stage являются правильными, потому что я могу отправлять запросы POST другим методам API аналогичным образом без ошибок. (например, Обновление Манифеста Навыков )

Я попытался дважды проверить все разрешения, установленные через Amazon Login, и я использую все те, которые указаны в документации:

alexa::ask:skills:read alexa::ask:skills:readwrite alexa::ask:models:read alexa::ask:models:readwrite alexa::ask:skills:test

Почему все еще возвращается ошибка 405?

1 Ответ

1 голос
/ 09 мая 2019

Использование CURLOPT_NOBODY изменяет метод запроса на HEAD, а не POST, поэтому попробуйте удалить эту строку.

...