403: запрос понят, но ему отказали в Twitter Android
Я пытаюсь твитнуть в твиттере с Android. Теперь для этого я создал приложение на 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)
4 ответа
У меня была та же самая ошибка, и обновление до последней версии twitter4j 3.0.5 (на момент написания этой статьи) устранило проблему.
Получить последнюю версию здесь http://twitter4j.org/en/index.html
РЕДАКТИРОВАТЬ: я должен отметить, что версия, которую я использовал, была twitter4j 3.0.3. Таким образом, переход на версию 3.0.5 или 3.0.6 исправил проблему для меня.
В
ConfigurationBuilder cb = new ConfigurationBuilder();
добавить cb.setUseSSL(true)
это будет работать
Перенаправление URL ssl необходимо убедиться, что ваше приложение работает на https.
Я столкнулся с этой ошибкой, когда хотел поделиться изображением с неправильным URL. Оказалось, я установил неправильную папку в URL, Twitter не нашел изображение, поэтому выдает ошибку. Вопрос в том, почему они показывают эту ошибку, а не что-то вроде "неправильный URL".
Вы также можете столкнуться с этой ошибкой, когда пытаетесь опубликовать более длинный текст. Я столкнулся с этим, когда я хотел поделиться текстом (124 символа) и ссылкой (10) символов, и это не позволило мне опубликовать его.
Когда у тебя есть
403:The request is understood, but it has been refused
у вас также есть код ошибки, объясняющий, что именно было не так. Это помогло мне понять причину.
Объяснение кодов ошибок вы можете увидеть здесь: https://developer.twitter.com/en/support/twitter-api/error-troubleshooting
Нашел эту проблему снова в нестабильной версии 4.0.6.
Попробуйте не использовать maven способом, указанным на сайте twitteer4j:
<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>