Я играю с TwitchAPI, используя модернизацию.Я хочу получить данные игры.Исходя из их документов, для получения токенами приложений им необходимо выполнить OAuth-неявный поток кода на начальном этапе.Делая это с модернизацией, я получаю HTML в качестве ответа.Это HTML-код, когда пользователь войдет в систему и авторизует приложение.После входа в систему я получаю свой токен доступа.
Я попробовал Поток учетных данных клиента OAuth .Модифицируя мой вызов для получения токена, я получаю объект JSON со всей необходимой информацией.
@POST("token")
Call<AccessTokenResponse> getData(@HeaderMap Map<String, String> headerMap, @Query("client_id")String clientId, @Query("client_secret") String clientSecret, @Query("grant_type")String grantType);
Этот тип должен использоваться с межсерверными запросами.Но ответ совершенно верный.
Я использую неявный подход, но я борюсь с ответом HTML.Я не знаю, как я могу использовать его и получить токен доступа после авторизации пользователя.Что мне нужно сделать, чтобы правильно получить токен доступа?
Мой код:
@GET("authorize")
Call<String>getDataImplicit(@Query("client_id")String clientId, @Query("redirect_uri") String redirectUri, @Query("response_type") String responseType, @Query("scope")String scopeType, @Query("state")String state);
Мой звонок:
Call<String>getImplicit = HttpConnectionHandler.getInstance().getTwitchGameApi().getDataImplicit("my client id", REDIRECT_URI, "token", "analytics:read:games", "123qwerty");
getImplicit.enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
if(response.code() != 200){
ResponseBody responseBody = response.errorBody();
try {
String str = responseBody.string();
Log.e("ERROR", str);
} catch (IOException e) {
e.printStackTrace();
}
}
else{
String str = response.body().toString();
Log.e("ERROR", "Body: "+str);
}
}
@Override
public void onFailure(Call<String> call, Throwable t) {
}
});