【问题标题】:The requested method GET is not allowed for the URL Amazon Skill Management APIURL Amazon Skill Management API 不允许请求的方法 GET
【发布时间】:2017-09-23 15:02:52
【问题描述】:

我目前正在尝试使用 PHP 从 Alexa Skill Management API 获取技能列表。我的访问令牌目前可用于获取用户个人资料信息,并且我 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/。

我确定我只是犯了一些愚蠢的错误。任何帮助将不胜感激。

【问题讨论】:

    标签: php alexa-skills-kit alexa-skill


    【解决方案1】:

    我在 POSTMAN 中尝试过相同的方法,但使用 POST 而不是 GET 并且看起来很好(我收到了未经授权的错误,这只是因为缺少令牌)。这意味着您尝试连接的 API 不是 GET 方法,而是 post。所以请尝试将请求类型设为 POST。请参阅下面我使用 POSTMAN 尝试过的相同 API

    为了确定是因为 HTTP 动词 GET 的问题,我用 GET 重现了同样的错误。请看下面的截图,

    请尝试添加如下一行以使您的请求成为 POST,

    curl_setopt($c, CURLOPT_POST, 1);
    

    【讨论】:

    • 我没有机会尝试这个,但文档似乎与此相矛盾:developer.amazon.com/public/solutions/alexa/alexa-skills-kit/…
    • 我应该相信官方文档。同时根据我的调查,我坚信这将是一个 POST。我没有访问令牌来试用它。请在您试用后告诉我。我真的很想知道:)
    • 酷。我仍然坚信,如果解决令牌问题,POST 应该可以工作。因为我们使用 GET 得到的错误消息与令牌或授权无关。
    • 优秀。很高兴知道它现在正在工作。他们在官方文档中造成的混乱也有点惊讶:)
    • 哦,好的。让我看看我们如何解决这个问题。
    猜你喜欢
    • 2016-12-12
    • 2017-01-10
    • 2019-05-15
    • 2014-01-08
    • 1970-01-01
    • 2020-07-30
    • 2023-04-02
    • 2021-08-16
    • 2016-04-23
    相关资源
    最近更新 更多