https://www.instagram.com/developer/authentication/
我在最后一步(三)。我正在做一个GET请求,我得到了一个响应,但它现在成功了,我得到的代码400说我缺少client_id但是我没有错过它。我看到其他几个有同样的问题,但没有明确的解决方案。以下是相关代码,请看看有点新的改造。
//here I am creating the request to send through retrofit...
<!-- language: java -->
TokenRequest request = new TokenRequest();
request.setClient_id(Constants.CLIENT_ID);
request.setClient_secret(Constants.CLIENT_SECRET);
request.setGrant_type(Constants.AUTORISATION_CODE);
request.setRedirect_uri(Constants.REDIRECT_URI);
request.setCode(code);
//这是实际的请求
final Call<TokenResponse> accessToken = ServiceManager.createTokenService().getAccessToken(request);
accessToken.enqueue(new Callback<TokenResponse>() {
@Override
public void onResponse(Call<TokenResponse> call, Response<TokenResponse> response) {
mtext.setText("hello");
if(response.isSuccess()){
mtext.setText("success");
}else{
try {
mtext.setText(response.errorBody().string());
//Log.d("mylog", response.errorBody().string());
} catch (IOException e) {
e.printStackTrace();
}
}
}
目前它没有进入if块而是在else块中显示错误。
答案 0 :(得分:0)
我的API接口构建不正确,您可以检查错误的评论。正确的是下面的那个:
@FormUrlEncoded @POST("/oauth/access_token")
Call<TokenResponse> getAccessToken(@Field("client_id") String client_id,
@Field("client_secret") String client_secret,
@Field("redirect_uri") String redirect_uri,
@Field("grant_type") String grant_type, @Field("code") String code);
对于我来说,如果你遇到同样的问题,对于改造希望它会有所帮助,这真的很棘手!