Запрошенный метод GET не разрешен для URL Amazon Skill Management API.

В настоящее время я пытаюсь получить список навыков из Alexa Skill Management API с использованием PHP. Мой токен доступа в настоящее время работает для получения информации о профиле пользователя, и я на 99% уверен, что дал правильную область для разрешения моей учетной записи развития навыков.

// exchange the access token for list of skills
$c = curl_init('https://api.amazonalexa.com/v0/skills/');
curl_setopt($c, CURLOPT_HTTPHEADER, array('Authorization: ' . $access_token));
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_VERBOSE, 1);

$r = curl_exec($c);
curl_close($c);
var_dump($r);

Приведенный выше код возвращает ошибку: Запрошенный метод GET не разрешен для URL-адреса /v0/skills/.

Я уверен, что просто совершаю глупую ошибку. Любая помощь будет оценена по достоинству.


person Optimus    schedule 23.09.2017    source источник


Ответы (1)


Я попробовал то же самое в POSTMAN, но с POST вместо GET, и все выглядит нормально (я получил несанкционированную ошибку только из-за отсутствия токена). Это означает, что API, который вы пытаетесь подключить, является не методом GET, а почтовым. Поэтому, пожалуйста, попробуйте тип запроса как POST. См. ниже тот же API, который я пробовал с POSTMAN.

введите здесь описание изображения

Чтобы убедиться, что это из-за проблемы с HTTP-глаголом GET, я воспроизвел ту же ошибку с GET. Пожалуйста, смотрите скриншот ниже,

введите здесь описание изображения

Пожалуйста, попробуйте добавить одну строку, как показано ниже, чтобы сделать ваш запрос POST,

curl_setopt($c, CURLOPT_POST, 1);
person Vijayanath Viswanathan    schedule 23.09.2017
comment
У меня не было возможности попробовать это, но документация, кажется, противоречит этому: developer.amazon.com/public/solutions/alexa/alexa-skills-kit/ - person Optimus; 23.09.2017
comment
Я должен доверять официальной документации. В то же время, основываясь на моем расследовании, я твердо верю, что это будет ПОЧТА. У меня нет токена доступа, чтобы попробовать. Пожалуйста, дайте мне знать после того, как вы попробуете это. Мне правда интересно узнать :) - person Vijayanath Viswanathan; 24.09.2017
comment
Ответ, который я получаю сейчас, заключается в том, что токен недействителен / просрочен, хотя это токен, который я использую для получения информации о профиле пользователя, поэтому срок его действия кажется маловероятным. - person Optimus; 24.09.2017
comment
Я думаю, что мне может понадобиться реорганизовать то, что я делаю, поскольку я не получил токен доступа из типа ответа кода авторизации. Я отчитаюсь после того, как сделаю это. - person Optimus; 24.09.2017
comment
Прохладно. Тем не менее я твердо верю, что POST должен работать, если решить проблему с токеном. Потому что сообщение об ошибке, которое мы получили с помощью GET, не имеет ничего общего с токеном или авторизацией. - person Vijayanath Viswanathan; 24.09.2017
comment
Хорошо, вышеприведенное «работает» теперь с «Пользователь не дал согласия на эту операцию». Хотя я озадачен этой новой разработкой, я считаю, что это приемлемый ответ. - person Optimus; 24.09.2017
comment
Превосходно. Рад узнать, что теперь это работает. Также немного удивлен путаницей, которую они внесли в официальную документацию :) - person Vijayanath Viswanathan; 24.09.2017
comment
Ну, это еще не совсем работает. Просто новая ошибка: stackoverflow.com/questions/46391553/ - person Optimus; 24.09.2017
comment
Уфф, ладно. Позвольте мне проверить, как мы можем разобраться с этим. - person Vijayanath Viswanathan; 24.09.2017