@TTXSTM

DonationAlerts API — Как получить Code, Token через ссылку?

Привет, возникла такая проблема с подключением к API DonationAlert
Сначала DonationAlerts выводил 'Unauthenticated.' потом я прочитал что нужно получить code, token с помощью ссылки:
String API_KEY = "API_TOKEN";
        String  APP_ID = "APP_ID";
        String REDIRECT_URI = "REDIRECT_URI";
        String SCOPE = "oauth-donation-index";
 
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create("https://www.donationalerts.com/oauth/authorize?client_id="+ APP_ID + "&redirect_uri=" + REDIRECT_URI + "&response_type=code&scope=" + SCOPE + "oauth-donation-index"))
                .method("GET", HttpRequest.BodyPublishers.noBody())
                .build();
        HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body());
        System.out.println(response);

Пробывал сделать так но ссылка с "code" не генерирует

При переходе по ссылке выводит такой текст:
{"error":"invalid_client","error_description":"Client authentication failed","message":"Client authentication failed"}


Также пытался получить ссылку с помощью .header() но ситуация не изменяется

Подскажите как можно получить code, token DonationAlerts?
  • Вопрос задан
  • 2646 просмотров
Решения вопроса 1
@TTXSTM Автор вопроса
Для начала нужно собрать ссылку и открыть её через браузер
Desktop.getDesktop().browse(new URI("https://www.donationalerts.com/oauth/authorize?" + "client_id=" + APP_ID + "&redirect_uri=" + REDIRECT_URI + "&response_type=token" + "&scope=" + SCOPE));

Потом подтвердить доступ приложению к аккаунту DonationAlerts
вас перебросит на REDIRECT_URI где вы сможете из ссылки получить token

Дальше авторизация как из документации:
HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create("https://www.donationalerts.com/api/v1/alerts/donations"))
                .header("Authorization", "Bearer  " + API)
                .method("GET", HttpRequest.BodyPublishers.noBody())
                .build();
        HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body());
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Добрый день.
Тут есть документация, где можно подробно прочитать:
https://www.donationalerts.com/apidoc
Прочитайте от: "1 - Application Registration" до "3 - Getting Access Token"

В вашем коде вы не определили значения этих переменных:
String API_KEY = "API_TOKEN";
        String  APP_ID = "APP_ID";
        String REDIRECT_URI = "REDIRECT_URI";
        String SCOPE = "oauth-donation-index";

Прочитав указанные выше главы, вы поймете, что нужно вписать туда.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы