2

この例でTwitterにログインしようとしています:

http://www.androidhive.info/2012/09/android-twitter-oauth-connect-tutorial/

私の問題は、ブラウザでのログインが完了した後です。ではなく、メインのアクティビティにリダイレクトしています

ログインメソッドを呼び出した場所からのアクティビティ。そのため、ユーザーを取得できません

ユーザーからの AccessToken。

これは私のマニフェストからのものです:

    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="oauth" android:host="t4jsample"/>
    </intent-filter>

私のログイン方法:

private void loginToTwitter() {
        // Check if already logged in
        if (!isTwitterLoggedInAlready()) {
            ConfigurationBuilder builder = new ConfigurationBuilder();
            builder.setOAuthConsumerKey(TWITTER_CONSUMER_KEY);
            builder.setOAuthConsumerSecret(TWITTER_CONSUMER_SECRET);
            Configuration configuration = builder.build();

            TwitterFactory factory = new TwitterFactory(configuration);
            twitter = factory.getInstance();

            try {
                requestToken = twitter
                        .getOAuthRequestToken(TWITTER_CALLBACK_URL);
                this.startActivityForResult(new Intent(Intent.ACTION_VIEW, Uri
                        .parse(requestToken.getAuthenticationURL())), TWITER);
            } catch (TwitterException e) {
                e.printStackTrace();
            }
        } else {
            // user already logged into twitter
            Toast.makeText(getApplicationContext(),
                    "Already Logged into twitter", Toast.LENGTH_LONG).show();
        }
}

私のコールバック URL

static final String TWITTER_CALLBACK_URL = "oauth://t4jsample";

助けてくれてありがとう:)

4

2 に答える 2

0

twitter apiで整数化したことがないのでわかりません。

ただし、認証を取得してからインテントを開始する必要があると思います。

Intent i = new intent(reditectedActivity.class, thisActivity.this);
startActivity(i);

だからこんな感じ

private void loginToTwitter() {
        // Check if already logged in
        if (!isTwitterLoggedInAlready()) {
            ConfigurationBuilder builder = new ConfigurationBuilder();
            builder.setOAuthConsumerKey(TWITTER_CONSUMER_KEY);
            builder.setOAuthConsumerSecret(TWITTER_CONSUMER_SECRET);
            Configuration configuration = builder.build();

            TwitterFactory factory = new TwitterFactory(configuration);
            twitter = factory.getInstance();

            try {
                requestToken = twitter
                        .getOAuthRequestToken(TWITTER_CALLBACK_URL);
                this.startActivityForResult(new Intent(Intent.ACTION_VIEW, Uri
                        .parse(requestToken.getAuthenticationURL())), TWITER);
Intent i = new intent(reditectedActivity.class, thisActivity.this);
startActivity(i);
            } catch (TwitterException e) {
                e.printStackTrace();
            }
        } else {
            // user already logged into twitter
            Toast.makeText(getApplicationContext(),
                    "Already Logged into twitter", Toast.LENGTH_LONG).show();
        }
}

またはあなたができる主な活動で..

最初にこれを定義します

static final String TWITTER_CALLBACK_URL = null;

それから

if (!TWITTER_CALLBACK_URL == nul){
Intent i = new intent(mainactivity.this, whereIsTheLogin.class);
startActivity(i);
}
于 2013-08-25T09:50:19.240 に答える