Проблема с авторизацией Android Jtwitter с помощью OAuthSignpostClient - PullRequest
1 голос
/ 16 сентября 2011

В настоящее время я работаю над своим первым приложением для Android, и у меня проблема с подключением к твиттеру, чтобы опубликовать статус из моего эмулятора Android 3.2.Кажется, что эмулятор может подключаться к Интернету, поскольку я могу использовать встроенный браузер для подключения к сети и настроить DNS-сервер.

! [Application] [1]

когда я нажимаю кнопку обновления, происходит сбой всего приложения и выдается следующая ошибка:

Извините!Приложение Burnett Street Hustle v1 (процесс com.burnettstreethustle) неожиданно остановилось, повторите попытку.

Поскольку код компилируется и запускается до тех пор, пока я не нажму кнопку «Обновить», я не уверен, что не так, поскольку сообщение об ошибке также неясно.

вот мой код:

public class TwitterTab extends Activity implements OnClickListener {

        static final String TAG = "TwitterTab";


        Button buttonUpdate;
        EditText textStatus;


        public void onClick(View src) {

            String JTWITTER_OAUTH_KEY =  "***************************";
            String JTWITTER_OAUTH_SECRET = "*****************************"; // i do have these codes as the app is registered, they have just been blanked out and are not the cause of the problem.

            OAuthSignpostClient oauthClient = new OAuthSignpostClient(JTWITTER_OAUTH_KEY,JTWITTER_OAUTH_SECRET, "http://127.0.0.1:1066/Twitter/Callback.aspx");



            oauthClient.authorizeUrl();
            String v = OAuthSignpostClient.askUser("Please enter the verification PIN from Twitter");
            oauthClient.setAuthorizationCode(v);

            Object accessToken = oauthClient.getAccessToken();
            Twitter jtwit = new Twitter("burnettstrhustl", oauthClient);

          String status = textStatus.getText().toString();

          Log.d(TAG, "Clicked on "+ status);

          // Toast
          Toast.makeText(this, textStatus.getText(), Toast.LENGTH_LONG).show();

          // set twitter status 
          jtwit.setStatus(status);

          //reset status string
          textStatus.setText("");
        }

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.twitter);
        buttonUpdate = (Button) findViewById(R.id.buttonUpdate);
        textStatus = (EditText) findViewById(R.id.textStatus);

        // Add listener
        buttonUpdate.setOnClickListener(this);

    }

Я также не уверен, как правильно использовать URL-адрес обратного вызова, какой URL-адрес должен использоваться для авторизации?

Спасибо.

UPDATE Stack Trace:

09-16 17: 05: 41.537: ОШИБКА / AndroidRuntime (409): winterwell.jtwitter.TwitterException: oauth.signpost.exception.OAuthCommunicationException: сбой связи с поставщиком услуг: null

Ответы [ 2 ]

1 голос
/ 06 апреля 2012

Есть ли в вашем приложении разрешение на доступ к Интернету в файле манифеста?

1 голос
/ 30 сентября 2011

Вы используете пример кода только для рабочего стола.

Рекомендуется создать намерение отправить пользователя на URL авторизации.А затем перехватите следующий веб-запрос из Twitter, содержащий информацию об авторизации.

У Мараканы также есть пример Android / JTwitter: http://marakana.com/forums/android/examples/312.html

...