【问题标题】:twitter4j.TwitterException: 401:Authentication credentials were missing or incorrecttwitter4j.TwitterException:401:身份验证凭据丢失或不正确
【发布时间】:2010-09-03 14:49:04
【问题描述】:

我正在用 Java [GWT] 开发基于 Web 的应用程序
我正面临 TwitterException 的问题。
我使用了有效的凭据。
推特推特 = 新推特(myTwitterId,myTwiterPwd);
当我调用 twitter.getFollowers() 方法时

我收到以下错误消息

twitter4j.TwitterException: 401:Authentication credentials were missing or incorrect.

<?xml version="1.0" encoding="UTF-8"?>
<errors>
    <error code="53">Basic authentication is not supported</error>
</errors>

    at twitter4j.http.HttpClient.httpRequest(HttpClient.java:469)
    at twitter4j.http.HttpClient.get(HttpClient.java:412)
    at twitter4j.Twitter.get(Twitter.java:276)
    at twitter4j.Twitter.get(Twitter.java:228)
    at twitter4j.Twitter.getFollowersStatuses(Twitter.java:1363)
    at twitter4j.Twitter.getFollowers(Twitter.java:1350)
    at com.vaibhav.dealelephant.server.impl.TwitterServiceImpl.getTwitterFollowers(TwitterServiceImpl.java:49)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:562)
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:188)
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:224)
    at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)

我想在我的网站中显示我的关注者图片,但在调用此方法后抛出异常 twitter.getFollowers() 方法。所以无法获取我的追随者图片:(

请为我提供同样的简单解决方案

希望您能得到最好的合作

提前致谢!!!

【问题讨论】:

  • 你使用的是什么版本的 twitter4j?

标签: java gwt twitter


【解决方案1】:

是的,您的身份验证不起作用,因为 Twitter 最近进行了一些更改 关于它如何让第 3 方代码进行身份验证。

换言之,API 的基本身份验证已关闭。

正如艾伦所说,oAuth 是正确的选择。

【讨论】:

  • 我们可以只传递 twitterid, twitter = new Twitter(myTwitterId); 而不是将 id 和 pwd 传递给 Twitter行不行?
【解决方案2】:

您发布的代码与我过去看到的用于连接的代码不同。我认为(虽然我不确定)oAuth 是现在首选的身份验证方式。

Here's a blog that details using oAuth to connect.

【讨论】:

【解决方案3】:

我遇到了这个麻烦,最后解决方案是在我的 Twitter API 中 (https://dev.twitter.com/‎) 放置一个有效的回调 url,我使用了 google+ url,保存了更改(可能需要几分钟才能做出更改,刷新页面以确保)并且它有效。

【讨论】:

    猜你喜欢
    • 2011-08-17
    • 2016-08-22
    • 2016-01-10
    • 1970-01-01
    • 1970-01-01
    • 2016-02-20
    • 2013-09-22
    • 2016-05-10
    • 2022-01-10
    相关资源
    最近更新 更多