{"message": "Пользователь не согласился на эту операцию."} HTTP / 1.1 401 Unauthorized - PullRequest
0 голосов
/ 26 марта 2019

Я получаю токен доступа с помощью 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();
    }
}
...