Интеграция Twitter для приложений Android - PullRequest
0 голосов
/ 05 января 2011

Мне нужно интегрировать Twitter с моим Android-приложением, и это мой код (на основе this ):

package com.anta40.oauthsetup;

import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
import twitter4j.http.AccessToken;
import twitter4j.http.RequestToken;
import twitter4j.Status;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
import java.util.List;

public class OAuthSetup extends Activity {
Twitter twitter;
RequestToken requestToken;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    String CONSUMER_KEY = "xxxxxxxxxx";
    String CONSUMER_SECRET = "yyyyyyyyyyyyyyyyyyyy";

    try {
        twitter = new TwitterFactory().getInstance();
        twitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
        RequestToken requestToken = twitter.getOAuthRequestToken();
        AccessToken accessToken = null;
        String url = requestToken.getAuthorizationURL();
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        startActivity(intent);
    }
    catch (TwitterException e){
        e.printStackTrace();
    }
}

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    Uri uri = intent.getData();

    try {
        String verifier = uri.getQueryParameter("oauth_verifier");
        AccessToken accessToken = twitter.getOAuthAccessToken(requestToken, verifier);
        String token = accessToken.getToken();
        String secret = accessToken.getTokenSecret();
        displayTimeLine(token, secret);
    }
    catch (TwitterException e){
        e.printStackTrace();
    }
}

@SuppressWarnings("deprecation")
void displayTimeLine(String token, String secret) {
    if (null != token && null != secret) {
        List<Status> statuses = null;
        try {
            twitter.setOAuthAccessToken(token, secret);
            statuses = twitter.getFriendsTimeline();
            Toast.makeText(this, statuses.get(0).getText(), Toast.LENGTH_LONG)
                .show();
        } catch (Exception ex) {
            Toast.makeText(this, "Error:" + ex.getMessage(),
                    Toast.LENGTH_LONG).show();
            Log.d("Main.displayTimeline",""+ex.getMessage());
        }

    } else {
        Toast.makeText(this, "Not Verified", Toast.LENGTH_LONG).show();
    }
}

}

Теперь вместоиспользуя WebView, как я могу использовать Dialog для ввода имени пользователя и пароля в Twitter?

Ответы [ 2 ]

1 голос
/ 05 января 2011

Вы не можете.Twitter теперь позволяет сторонним приложениям использовать клятву для аутентификации сам по себе.

Хорошо, позвольте мне пояснить, что вы можете добавить диалоговое окно и позволить пользователю вводить там имя пользователя / пароль, но Twitter не предоставляетлюбой API для этого больше.

Вы можете найти более подробную информацию по теме здесь: http://dev.twitter.com/pages/oauth_faq

0 голосов
/ 27 ноября 2011

https://dev.twitter.com/docs/oauth/xauth - посмотрите на эту функцию, возможно она вам поможет

...