내 색인 페이지에는 페이스 북으로 인증 할 수있는 링크가 있습니다.
<a href="https://www.facebook.com/dialog/oauth?client_id=xxx&redirect_uri=http://xxx.herokuapp.com/test">Test</a>
내 TestServlet 내에서 그래프 API를 쿼리 할 수 있도록 인증하고 액세스 토큰을 얻습니다. 200 개의 결과 목록에 정보를 쿼리하고 저장합니다. 결과는 내 jsp 페이지 (test.jsp)로 전달됩니다.
내 test.jsp 내부 :
URL이 표시됩니다. http://xxx.herokuapp.com/test?code=xxx
200 개의 결과를 동시에 표시하고 싶지 않기 때문에 한 번에 20 개의 결과 만로드합니다. <a href='/test?page=${page+1}&code=${code}'>Next Page</a>
페이지가 현재 페이지 번호 1이고 코드가 URL의 코드 인 다음 페이지에 대한 링크가 있습니다.
그러나 '다음 페이지'링크를 클릭하면이 오류가 발생합니다.
java.io.IOException: Server returned HTTP response code: 400 for URL: https://graph.facebook.com/oauth/access_token?client_id=xxx&redirect_uri=http://xxx.herokuapp.com/test&client_secret=xxx&code=xxx
문제가 인코딩 문제에 있습니까? 그렇다면 URL에 코드를 어떻게 인코딩해야하며 어디에서 인코딩해야합니까? 내 jsp 페이지 또는 서블릿 내부? 감사.
"다음 페이지"링크에서 동일한 "코드"를 사용하여 access_token을 다시 얻으려는 것 같습니다. 그리고 Facebook은 400 잘못된 요청 오류를 반환합니다. facebook에서 반환 된 "코드"는 access_token을 얻기 위해 한 번만 사용되어야합니다. 액세스 토큰이 있으면 이후의 모든 Graph API 호출에이를 사용합니다.
세션을 사용하는 경우 세션에 access_token을 저장하고 그래프 API 호출에 사용할 수 있습니다. 그렇지 않으면 다음 페이지 링크에서 access_token (코드 대신)을 전달할 수 있습니다.
<a href='/test?page=${page+1}&access_token=${access_token}'>Next Page</a>
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다