我正在尝试使用twitter4j检索Twitter用户的时间线。我能够使用2.6版本执行此操作,但现在我升级到3.03并开始从twitter获得authenticaton错误。
401:身份验证凭据(https://dev.twitter.com/pages/auth) 失踪或不正确。确保您已设置有效的消费者 密钥/秘密,访问令牌/秘密和系统时钟是同步的。 消息 - 无法验证您的代码 - 32
这是我检索推特对象的方式
TwitterFactory twitterFactory = new TwitterFactory(
new ConfigurationBuilder().setDebugEnabled(true).
setOAuthConsumerKey(oAuthConsumerKey).
setOAuthConsumerSecret(oAuthConsumerSecret).
setJSONStoreEnabled(true).
build());
twitter = twitterFactory.getInstance();
twitter.setOAuthAccessToken(new AccessToken(accessToken, accessTokenSecret));
当我检索这样的Twitter对象并尝试获得与经过身份验证的用户不同的用户时,我收到了身份验证错误。以下是检索用户的代码:
user = twitter.showUser(userName);
在升级之前,我能够检索具有公共配置文件的任何用户,但现在我无法检索除经过身份验证的用户本身之外的任何用户。我在这里做smtg错了,我是否需要获得用户的许可才能查找他的时间线,我不相信,因为当我使用twitter的oauth工具时,我能够在未获得用户任何许可的情况下检索用户
我使用的是twitter4j 3.03版。
答案 0 :(得分:1)
显然旧api接受以“@”开头的userNames,而新版本只是抛出这个奇怪的错误。从搜索到的用户名中删除“@”后,所有工作都没有任何问题。