Я пишу в Go и проверяю навык Alexa и ищу получение имени учетной записи пользователя Amazon и других полей. У меня правильно установлены разрешения в консоли разработчика alexa. У меня ВСЕ разрешения включены.
Мои функции выполняются в AWS Лямбда-тесты и тесты Alexa прекрасно работают с другими функциями.
Вот код:
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, я должен иметь доступ к информации об учетной записи.