Я получаю токен доступа с помощью client_id и client secret по типу авторизации client_credential, но по-прежнему не могу получить доступ к ресурсам (сведения о привязке аккаунта) из навыка alexa, где я использовал мой client_id & client_secret (созданный в профиле безопасности amazon).
Вот мой код для получения токена доступа:
HttpPost httpPost = new HttpPost("https://api.amazon.com/auth/o2/token");
HttpClient client = new DefaultHttpClient();// HttpClientBuilder.create().build();
httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded");
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(
new BasicNameValuePair("client_id", "amzn1.appl***************************************98"));
params.add(new BasicNameValuePair("client_secret",
"1e5d*****************************************eb2"));
params.add(new BasicNameValuePair("grant_type", "client_credentials"));
params.add(new BasicNameValuePair("scope", "adx_reporting::appstore:marketer"));
try {
httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
try {
HttpResponse response = client.execute(httpPost);
HttpEntity respEntity = response.getEntity();
if (respEntity != null) {
String content = EntityUtils.toString(respEntity);
System.out.println(content);
System.out.println(response.getStatusLine());
}
} catch (Exception e) {
e.printStackTrace();
}
Вот мой код, где я получаю сообщение:
{"message": "Пользователь не согласился на эту операцию."}
HTTP / 1.1 401 Несанкционированный
мой код:
String stage = "development";
String skillId = "amz*************************************dd";
String url = "https://api.amazonalexa.com/v1/skills/" + skillId + "/stages/" + stage
+ "/accountLinkingClient";
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(url);
get.addHeader("Authorization", "Bearer " + token);
try {
HttpResponse response = client.execute(get);
HttpEntity respEntity = response.getEntity();
if (respEntity != null) {
String content = EntityUtils.toString(respEntity);
System.out.println(content);
System.out.println(response.getStatusLine());
}
} catch (Exception e) {
e.printStackTrace();
}
}