Новое для модернизации и попытки использовать API Instagram с использованием модификации. Ниже приведена настройка. Сначала я определить интерфейс для связи с Instagram APIRetrofit + Instagram API возвращает ошибку 400 при запросе доступа к токену
public interface API {
@POST("oauth/access_token")
Call<AccessToken> getAccessToken(@Body TokenRequest tokenRequest);
}
Ниже моя реализация
public class APIPresenter implements Callback<List<APIResponse>> {
static final String BASE_URL = "https://api.instagram.com/";
public void startI(String code){
Gson gson = new GsonBuilder()
.setLenient()
.create();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
API r = retrofit.create(API.class);
Call<AccessToken> call = r.getAccessToken(new TokenRequest("CLIENT_ID", "CLIENT_SECRET", "authorization_code", "redirecturi", code));
call.enqueue(new Callback<AccessToken>() {
@Override
public void onResponse(Call<AccessToken> call, Response<AccessToken> response) {
// Log.i("WORKING", response.body().access_token + " " + response.body().user.getUsername());
Log.i("WORKING", String.valueOf(response.code()));
}
@Override
public void onFailure(Call<AccessToken> call, Throwable t) {
t.printStackTrace();
}
});
}
TokenRequest
public class TokenRequest {
private String client_id;
private String client_secret;
private String grant_type;
private String redirect_uri;
private String code;
public TokenRequest(String client_id, String client_secret, String grant_type, String redirect_uri, String code) {
this.client_id = client_id;
this.client_secret = client_secret;
this.grant_type = grant_type;
this.redirect_uri = redirect_uri;
this.code = code;
}
}
модель
маркер доступаpublic class AccessToken {
@SerializedName("access_token")
@Expose
public String access_token;
@SerializedName("user")
@Expose
public User user;
}
Проблема в том, что когда я пытаюсь вывести содержимое ответа в методе onResponse, я получаю нуль. Я не уверен, что я делаю неправильно
Update Я получаю следующее сообщение об ошибке
{ "код": 400, "ERROR_TYPE": "OAuthException", «error_message ":" Вы должны предоставить client_id "}
Спасибо, но это решение не будет работать с моим проектом, поскольку оно было построено на модификации 1.6.1. Однако я исправил проблему, вы можете проверить мой ответ. –