Твиттер-клиент Oauth Athentication для Android - PullRequest
1 голос
/ 11 октября 2011

Я создаю Twitter-клиент для Android, используя Oauth1.0, и я застрял где-то посередине

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


    OAuthConsumer consumer = new DefaultOAuthConsumer(
            "CONSUMER_KEY",
            "CONSUMER_CUSTOMER_KEY");

    OAuthProvider provider = new DefaultOAuthProvider(
            "https://api.twitter.com/oauth/request_token",
            "https://api.twitter.com/oauth/access_token",
            "https://api.twitter.com/oauth/authorize");

  Toast.makeText(getApplicationContext(), "fetching request token", Toast.LENGTH_SHORT).show();
  try 
  {
        String authUrl = provider.retrieveRequestToken(consumer, OAuth.OUT_OF_BAND);
    //  Toast.makeText(getApplicationContext(), authUrl, Toast.LENGTH_SHORT).show();

        String url = provider.retrieveRequestToken(consumer, OAuth.OUT_OF_BAND);
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)).setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_FROM_BACKGROUND);
        this.startActivity(intent); 


    }


  catch (OAuthMessageSignerException e) 
  {
        // TODO Auto-generated catch block
        e.printStackTrace();
  }
  catch (OAuthNotAuthorizedException e) 
  {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } 
  catch (OAuthExpectationFailedException e) 
  {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } 
  catch (OAuthCommunicationException e) 
  {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }



}

Теперь я смог авторизоваться с этим, но как только я ввел свое имя пользователяи пароль, пин-код появляется и перенаправление не происходит!Ну, что я хочу, это отображать твиты пользователя без ввода пин-кода!Что мне делать?

Заранее спасибо

1 Ответ

1 голос
/ 11 октября 2011

Первый шаг - прочитать документацию по аутентификации OOB на dev.twitter.com

Для приложений, которые действительно не могут обрабатывать весь процесс OAuth Твиттер предоставляет режим аутентификации вне полосы / PIN-кода, а также известный как ооб.

Этот поток аутентификации практически идентичен полному OAuth, за исключением вместо того, чтобы быть направленным обратно на ваш сайт, пользователь представлен с пин-кодом.

Вам необходимо направить пользователя в ваше приложение, чтобы ввести предоставленный PIN-код для завершения процесса аутентификации. Если вы хотите перенаправления, используйте полный поток oAuth1.0a с компонентом сервера или сделайте URL-адрес обратного вызова ссылкой, чтобы открыть приложение для Android.

...