在我的索引页面中,我有这个链接,让我使用facebook。
<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页面或servlet中?谢谢。
发布于 2013-09-22 13:18:02
看起来,您正在尝试再次使用“下一页”链接中的相同“代码”获取access_token。Facebook正在返回400个错误请求。facebook返回的“代码”应该只使用一次就可以得到access_token。一旦您有了访问令牌,就可以使用它来进行所有的Graph调用。
如果使用会话,则可以将access_token存储在会话中,并将其用于图形API调用。否则,您可以在下一个页面链接中传递access_token (而不是代码):
<a href='/test?page=${page+1}&access_token=${access_token}'>Next Page</a>https://stackoverflow.com/questions/18942881
复制相似问题