저는 몇 시간 동안이 문제에 대해 논쟁을 벌였습니다. 그래서, 나는 성공적으로 내 안드로이드 애플 리케이션 페이스 북을 사용하여 로그인 사용자를 요청했습니다.Facebook OAuthException : 형식이 잘못된 액세스 토큰 ErrorCode 190
일단 로그인하면 액세스 토큰 (문자열 값)을 얻은 다음 Facebook의 요청을 작성하여 페이지의 게시물을 가져옵니다. 여기에 내가 그 모든 과정을 어떻게 수행하는지가 나와있다.
public void setupFacebook()
{
Session.openActiveSession(this, true, new Session.StatusCallback()
{
// callback when session changes state
@Override
public void call(Session mSession, SessionState state, Exception exception) {
if (mSession.isOpened() && mSession != null)
{
facebookAccessToken = mSession.getAccessToken();
Log.d("ACCESSTOKEN", facebookAccessToken);
fetchPagePosts(facebookAccessToken, mSession);
}
}
});
}
public void fetchPagePosts(String token, Session session)
{
Request.Callback callback = new Request.Callback()
{
@Override
public void onCompleted(Response response)
{
Log.d("RESPONSE", "ERROR"+response.getError());
Log.d("RESPONSE", ""+response);
}
};
String endpoint = String.format("https://graph.facebook.com/"+pageId+"/posts?access_token=%s", facebookAccessToken);
Log.d("ENDPOINT", endpoint);
Request request = new Request(session, endpoint, null, HttpMethod.GET, callback);
RequestAsyncTask task = new RequestAsyncTask(request);
task.execute();
}
여기서 흥미로운 부분은 내 로그 캣에서 URL을 복사 (I 엔드 포인트라는 것을) 및 브라우저에 붙여 넣을 때, 그것은 완벽하게 잘 작동한다는 것입니다. 그래도 난 내 태블릿에 내 코드를 실행하면
, 그것은 ErrorCode가 190 및 HttpStatus 400를 반환합니다.
Facebook의 설명서에 따르면, 그것은 여러 가지 중 하나 일 수 있습니다.
- 액세스 토큰이 잘못 그것은
- 는 사용자가 자신의 암호 또는 사용자는 사용자가 자신의 계정에 대한 액세스 권한을 취소 한 계정
- 을 로그 아웃했다
- 을 변경 만료 당신의 앱!
브라우저에서 동일한 URL을 테스트했기 때문에 여기에 멈추었습니다. 필요한 json 데이터를 반환합니다. 안드로이드 코드로 실행할 때 실패합니다.
누군가에게 제안 사항이 있으면 저에게 도움을주십시오 - 정말 감사드립니다.
미리 감사드립니다.