Я получаю ошибку 400 при публикации обновления статуса? - JTwitter

Я в настоящее время нахожусь на видео 10 ( http://marakana.com/s/post/1046/threading_android_demo) учебников по Android, и я изо всех сил пытаюсь заставить работать обновление статуса.

Когда я использую библиотеку JTwitter-yamba при условии, я получаю исключение 301, говорящее " 301 (перемещено постоянно)"

Он действительно может опубликовать статус, но вылетает вскоре после этого.

Из этого потока стеков кажется, что использование обновленной библиотеки JTwitter должно исправить это: ошибка авторизации с jTwitter для android

Когда я использую новейшую библиотеку JTwitter (2.8.8), я получаю следующую ошибку: "HTTP\1.1 Bad Request"

Я также получаю:

[06-23 00: 05: 13.244: E / AndroidRuntime (3329): {"error": "Клиент должен предоставить параметр 'status' со значением.","Request": "/ api / statuses / update.json "} http://yamba.marakana.com/api/statuses/update.json]

Я не уверен, что делать..

Любая помощь приветствуется.

Фуад.

Код StatusActivity.java, который я использую:

    package com.example.yamba;

import winterwell.jtwitter.Twitter;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;

public class StatusActivity extends Activity {

    EditText editStatus;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.status); //

        editStatus = (EditText) findViewById(R.id.edit_status);

    }

    public void onClick(View v) {
        final String statusText = editStatus.getText().toString();

        new Thread() {
            @Override
            public void run() {
                Twitter twitter = new Twitter("student", "password");
                twitter.setAPIRootUrl("http://yamba.marakana.com/api"); // redirecting
                twitter.setStatus(statusText);

                Log.d("StatusActivity", statusText);
            }
        }.start();
        Log.d("StatusActivity", "Reached this point");

    }
}

Ошибка LogCat я получаю:

06-23 15:20:46.898: W/dalvikvm(28815): threadid=11: thread exiting with uncaught exception (group=0x41b91540)
06-23 15:20:46.898: E/AndroidRuntime(28815): FATAL EXCEPTION: Thread-8268
06-23 15:20:46.898: E/AndroidRuntime(28815): winterwell.jtwitter.TwitterException: 400 Bad Request
06-23 15:20:46.898: E/AndroidRuntime(28815): HTTP/1.1 400 Bad Request
06-23 15:20:46.898: E/AndroidRuntime(28815): {"error":"Too many duplicate messages too quickly; take a breather and post again in a few minutes.","request":"\/api\/statuses\/update.json"} http://yamba.marakana.com/api/statuses/update.json
06-23 15:20:46.898: E/AndroidRuntime(28815):    at winterwell.jtwitter.URLConnectionHttpClient.processError(URLConnectionHttpClient.java:517)
06-23 15:20:46.898: E/AndroidRuntime(28815):    at winterwell.jtwitter.URLConnectionHttpClient.post2_connect(URLConnectionHttpClient.java:412)
06-23 15:20:46.898: E/AndroidRuntime(28815):    at winterwell.jtwitter.URLConnectionHttpClient.post2(URLConnectionHttpClient.java:378)
06-23 15:20:46.898: E/AndroidRuntime(28815):    at winterwell.jtwitter.URLConnectionHttpClient.post(URLConnectionHttpClient.java:347)
06-23 15:20:46.898: E/AndroidRuntime(28815):    at winterwell.jtwitter.Twitter.updateStatus(Twitter.java:2762)
06-23 15:20:46.898: E/AndroidRuntime(28815):    at winterwell.jtwitter.Twitter.updateStatus(Twitter.java:2694)
06-23 15:20:46.898: E/AndroidRuntime(28815):    at winterwell.jtwitter.Twitter.setStatus(Twitter.java:2482)
06-23 15:20:46.898: E/AndroidRuntime(28815):    at com.example.yamba.StatusActivity$1.run(StatusActivity.java:31)

2 ответа

{"error":"Слишком много повторяющихся сообщений слишком быстро; передышка и повторная публикация через несколько минут.","request":"/api/statuses/update.json"}

Это довольно очевидно. Вы публикуете одно и то же сообщение снова и снова. Это используется для предотвращения злоупотребления спамерами API.

На самом деле, я думаю, я узнал, почему это не сработало раньше. Это блокирует меня, когда я пытаюсь опубликовать слишком много обновлений статуса за один раз! Я предполагаю, что JTwitter не нравится, когда вы публикуете слишком много сообщений, потому что он думает, что вы злоупотребляете системой?

Другие вопросы по тегам