403:请求已被理解,但被拒绝。Twitter Android。

18

我想在安卓上使用Twitter发布推文。为此,我在dev.twitter上创建了一个应用程序,并从此链接下载了示例代码,并使用我的应用程序密钥更新了两个密钥。

现在,我运行该代码以验证帐户,并在此之后推文,这条推文包含图像和文本,其中图像是在示例代码中定义的URL上。现在,第一次它成功上传图像和文本,但是当我尝试再次推文时,它给出了403状态更新错误。

为此,我更改了文本消息“状态文本”和图像URL,但仍然出现“403状态”更新错误。我的代码与示例代码完全相同,只有密钥已更改。

这是我的Logcat:

10-04 11:26:25.015: W/System.err(22822): 403:The request is understood, but it has been refused. An accompanying error message will explain why. This code is used when requests are being denied due to update limits (https://support.twitter.com/articles/15364-about-twitter-limits-update-api-dm-and-following).
10-04 11:26:25.015: W/System.err(22822): message - Error creating status.
10-04 11:26:25.015: W/System.err(22822): code - 189
10-04 11:26:25.025: W/System.err(22822): Relevant discussions can be found on the Internet at:
10-04 11:26:25.025: W/System.err(22822):    http://www.google.co.jp/search?q=b2b52c28 or
10-04 11:26:25.025: W/System.err(22822):    http://www.google.co.jp/search?q=11331d43
10-04 11:26:25.025: W/System.err(22822): TwitterException{exceptionCode=[b2b52c28-11331d43], statusCode=403, message=Error creating status., code=189, retryAfter=-1, rateLimitStatus=null, version=3.0.3}
10-04 11:26:25.025: W/System.err(22822):    at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:177)
10-04 11:26:25.025: W/System.err(22822):    at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:61)
10-04 11:26:25.025: W/System.err(22822):    at twitter4j.internal.http.HttpClientWrapper.post(HttpClientWrapper.java:98)
10-04 11:26:25.030: W/System.err(22822):    at twitter4j.TwitterImpl.post(TwitterImpl.java:1871)
10-04 11:26:25.030: W/System.err(22822):    at twitter4j.TwitterImpl.updateStatus(TwitterImpl.java:252)
10-04 11:26:25.030: W/System.err(22822):    at chintan.khetiya.android.Twitter_code.Twitt_Sharing.Share_Pic_Text_Titter(Twitt_Sharing.java:126)
10-04 11:26:25.030: W/System.err(22822):    at chintan.khetiya.android.Twitter_code.Twitt_Sharing$PostTwittTask.doInBackground(Twitt_Sharing.java:91)
10-04 11:26:25.030: W/System.err(22822):    at chintan.khetiya.android.Twitter_code.Twitt_Sharing$PostTwittTask.doInBackground(Twitt_Sharing.java:1)
10-04 11:26:25.030: W/System.err(22822):    at android.os.AsyncTask$2.call(AsyncTask.java:287)
10-04 11:26:25.035: W/System.err(22822):    at java.util.concurrent.FutureTask.run(FutureTask.java:234)
10-04 11:26:25.035: W/System.err(22822):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
10-04 11:26:25.040: W/System.err(22822):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
10-04 11:26:25.040: W/System.err(22822):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
10-04 11:26:25.040: W/System.err(22822):    at java.lang.Thread.run(Thread.java:856)

似乎你已经达到了限制...这就是日志所说的。 - Pratik
@Pratik 我只发了一次推文,尝试再次发送时却无法成功。即使网站上说允许发送1000条推文。 - User42590
请尝试此链接:http://www.londatiga.net/it/how-to-send-image-to-twitpic-from-android/ - Pratik
此项目中的API已不再受支持。 - User42590
该项目中使用的API已不再受支持,需要使用API v1.1。而当前正在使用的是API v3。 - User42590
@User42590,这段代码对我来说完美运行。只是我不得不重置模拟器时间,因为它显示的是错误的时间。看看这个... - rahulserver
5个回答

36

我也曾遇到过相同的错误,在此时最新版本的Twitter4j 3.0.5中升级可以解决此问题。

请在此处获取最新版本http://twitter4j.org/en/index.html#download

注意:我当时使用的版本是Twitter4j 3.0.3。 因此,升级到版本3.0.5或3.0.6可以为我解决该问题。


太好了,这是完美的解决方案。 - Dixit Patel
谢谢。我遇到了同样的问题,更新库解决了。不过我不知道3.0.3版本出现问题的原因。 - Punit Raizada
@erdomester 你好,我的朋友。我在4.0.1上遇到了同样的问题。我正在使用这个库中的twitter4j。https://github.com/antonkrasov/AndroidSocialNetworks 如果你能解决它,能否分享给我? - zono
由于我在Eclipse中使用的是twitter4j-core-4.0.4-javadoc.jar,因此它不会被接受。 - Prasad

0
在不稳定的版本4.0.6中又发现了这个问题。
尝试不要按照twitteer4j网站上指定的方式使用maven,该方式如下:
 <dependencies>
      <dependency>
           <groupId>org.twitter4j</groupId>
           <artifactId>twitter4j-core</artifactId>
           <version>[4.0,)</version>
       </dependency>
       ...
   </dependencies>

相反地,请使用特定的版本(当前稳定版本为4.0.4)来解决此问题,但是[4.0,)会获取4.0的最新版本,因此是4.0.6。

 <dependencies>
      <dependency>
           <groupId>org.twitter4j</groupId>
           <artifactId>twitter4j-core</artifactId>
           <version>4.0.4</version>
       </dependency>
       ...
   </dependencies>

0

当我想使用错误的URL分享图像时,遇到了这个错误。结果发现我在URL中设置了错误的文件夹,Twitter找不到图像因此引发了错误。问题是,为什么他们显示这个错误而不是像“错误的URL”之类的东西。

当您尝试发布更长的文本时,您也可能遇到此错误。我想共享一个包含124个字符的文本和一个10个字符的链接,但无法发布。


0

ConfigurationBuilder cb = new ConfigurationBuilder();

添加 cb.setUseSSL(true)

它会起作用的

重定向URL需要SSL,请确保您的应用程序在https上运行。


为了进行身份验证,您需要创建ConfigurationBuilder对象,然后在其中添加cb.setUseSSL(true)。 - Ravi Kumar

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接