Google app engine Twitter oAuth重定向到404,但这只是第一次

Google app engine Twitter oAuth重定向到404,但这只是第一次,google-app-engine,twitter-oauth,twitter4j,Google App Engine,Twitter Oauth,Twitter4j,使用twitter4j v3.0.3,Twitter集成的各个方面都可以工作,除了在验证/授权my时,浏览器被重定向到返回“抱歉,该页面不存在!” 这种情况只会在第一次出现,即浏览器具有清晰的缓存或匿名窗口。我的服务器报告它正在重定向到此URL …浏览器将302确认为 …并且该请求生成对不存在的页面的302,即 当用户从“抱歉,该页面不存在!”页面返回并重试时,oauth流工作正常 我猜这与附加的JSSessionID有关 此问题出现在本地开发服务器上,但在GAE生产中也会间歇性地看到40

使用twitter4j v3.0.3,Twitter集成的各个方面都可以工作,除了在验证/授权my时,浏览器被重定向到返回“抱歉,该页面不存在!”

这种情况只会在第一次出现,即浏览器具有清晰的缓存或匿名窗口。我的服务器报告它正在重定向到此URL

…浏览器将302确认为

…并且该请求生成对不存在的页面的302,即

当用户从“抱歉,该页面不存在!”页面返回并重试时,oauth流工作正常

我猜这与附加的JSSessionID有关


此问题出现在本地开发服务器上,但在GAE生产中也会间歇性地看到404。

要正确进行身份验证,您应该通过链接中的查询参数发送适当的参数,例如:使用者密钥、使用者密钥、访问令牌和访问令牌密钥


如果您仍然收到相同的页面未找到错误,则可能与身份验证参数关联的twitter帐户已被删除

我在这里找到了解决方案:

您正确地识别了问题:GAE为用户发出的第一个请求(即创建会话时)附加一个jsessionid参数

要防止它这样做,您可以编辑web.xml并附加以下内容:

<context-param>
    <param-name>org.mortbay.jetty.servlet.SessionURL</param-name>
    <param-value>none</param-value>
</context-param>

org.mortbay.jetty.servlet.SessionURL
没有一个

正如我前面提到的,Twitter集成的每个方面都是有效的。即使oAuth在重新尝试时也会流动。这意味着所有参数都在Twitter4J中正确设置,不是吗?考虑到oAuth流在重新尝试时可以工作,关联的twitter帐户显然没有被删除。