首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring Social Twitter流返回未经授权的HTTP 401

Spring Social Twitter流返回未经授权的HTTP 401
EN

Stack Overflow用户
提问于 2015-11-15 21:37:06
回答 1查看 407关注 0票数 0

我尝试使用spring-social-twitter建立到Twitter的流连接,但当我尝试发出请求时,我得到了401 unauthorized

spring-social-twitter正在尝试连接https://stream.twitter.com/1.1/statuses/filter.json。当我调试它并尝试获取response.getBody()时,我得到了带有详细消息的HttpRetryExceptioncannot retry due to server authentication, in streaming mode

我对app有适当的授权,但我没有访问令牌的授权,因为我这里不需要它。我使用的是1.1.0.RELEASE版本。

我会很高兴得到你的帮助!

这是我对stream的调用:

代码语言:javascript
复制
final Stream stream = twitter.streamingOperations().filter(keywords, listeners);

这是我的简单监听器类:

代码语言:javascript
复制
private class TwitterStreamListener implements StreamListener {

    private static final Logger LOGGER = LoggerFactory.getLogger(TwitterStreamListener.class);

    @Override
    public void onTweet(Tweet tweet) {
        LOGGER.info("onTweet");
    }

    @Override
    public void onDelete(StreamDeleteEvent deleteEvent) {
        LOGGER.info("onDelete");
    }

    @Override
    public void onLimit(int numberOfLimitedTweets) {
        LOGGER.info("onLimit");
    }

    @Override
    public void onWarning(StreamWarningEvent warningEvent) {
        LOGGER.info("onWarning");
    }
}
EN

回答 1

Stack Overflow用户

发布于 2015-11-16 04:34:49

我终于找到了答案。我把它贴在这里,所以也许它能帮助其他人解决同样的问题。

我发现Twitter屏蔽了我的应用程序,以便在我作为应用程序的浏览器客户端连接自己之前建立一个流连接。因此,我需要接收用户的访问令牌来建立流连接。

早些时候,当我尝试连接时-什么也没有发生..这是因为我在我的应用程序设置中有错误的回调URL (在twitter的页面上)。

当我将回调URL更改为http://127.0.0.1时(它可以是任何类型的有效URL,您的应用程序不需要具有相同的URL,但您不能使用像localhost这样的东西)。

在那之后,我可以将我的应用程序连接到我的twitter账户,这样我就可以开始流式连接了。毕竟,我不知道为什么Twitter需要用户连接来传输公共推文。搜索REST API不需要。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33720304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档