2014-07-08 3 views
0

저는 몇 시간 동안이 문제에 대해 논쟁을 벌였습니다. 그래서, 나는 성공적으로 내 안드로이드 애플 리케이션 페이스 북을 사용하여 로그인 사용자를 요청했습니다.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의 설명서에 따르면, 그것은 여러 가지 중 하나 일 수 있습니다.

  1. 액세스 토큰이 잘못 그것은
  2. 는 사용자가 자신의 암호 또는 사용자는 사용자가 자신의 계정에 대한 액세스 권한을 취소 한 계정
  3. 을 로그 아웃했다
  4. 을 변경 만료
  5. 당신의 앱!

브라우저에서 동일한 URL을 테스트했기 때문에 여기에 멈추었습니다. 필요한 json 데이터를 반환합니다. 안드로이드 코드로 실행할 때 실패합니다.

누군가에게 제안 사항이 있으면 저에게 도움을주십시오 - 정말 감사드립니다.

미리 감사드립니다.

답변

관련 문제