Go Alexa技能测试返回访问被拒绝错误
我正在编写Go,测试Alexa技能,并希望检索用户的Amazon帐户名和其他字段。我在alexa开发者控制台中正确设置了权限。我已启用所有权限 我的函数在AWS Lambda和Alexa测试中运行,与其他函数一样 代码如下:Go Alexa技能测试返回访问被拒绝错误,go,aws-lambda,alexa,Go,Aws Lambda,Alexa,我正在编写Go,测试Alexa技能,并希望检索用户的Amazon帐户名和其他字段。我在alexa开发者控制台中正确设置了权限。我已启用所有权限 我的函数在AWS Lambda和Alexa测试中运行,与其他函数一样 代码如下: func callAmazonAPI(apiEndpoint string, apiToken string) (string, error) { //url := apiEndpoint + "/v2/accounts/~current/settings/Prof
func callAmazonAPI(apiEndpoint string, apiToken string) (string, error) {
//url := apiEndpoint + "/v2/accounts/~current/settings/Profile.name"
url := "https://api.amazonalexa.com/v2/accounts/~current/settings/Profile.name"
// Create a Bearer string by appending string access token
var bearer = "Bearer " + apiToken
// Create a new request using http
req, err := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", bearer)
req.Header.Add("Accept", "application/json")
req.Header.Add("Host", "api.amazonalexa.com")
// Send req using http Client
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
return "Error in callAMazonAPI!", err
}
body, _ := ioutil.ReadAll(resp.Body)
return string([]byte(body)), err
}
它没有返回错误。它返回的是:
{"code":"ACCESS_DENIED","message":"Access denied with reason: ACCESS_NOT_REQUESTED"}
根据Alexa文档,我应该可以访问帐户信息。仅仅因为您在Alexa控制台中定义了您想要的权限,并不意味着用户实际上已经将这些权限授予了您。您需要实际使用权限卡向用户请求权限,然后用户需要接受权限卡,然后使用api发出请求。您提供的代码只是试图访问API,我看不出您在哪里向客户请求权限我只是在Alexa控制台中进行测试。在阅读帮助时,听起来就像在测试控制台时,您被授予了权限。不是这样吗?我不是100%确定,但我知道一些权限在测试控制台中根本不起作用