0

ログインに成功し、firebase-ui-auth [ https://github.com/firebase/FirebaseUI-Android/blob/master/auth/README.md][1]を使用して Twitter アクセス トークンと Twitter アクセス シークレットを取得しました。

    @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == RC_SIGN_IN && resultCode == RESULT_OK) {
        IdpResponse response = IdpResponse.fromResultIntent(data);
       //twitter access token
        response.getIdpToken();
        //twitter access token secret
        response.getIdpSecret();
    }
}

共有設定に保存するこれらの 2 つのトークンを使用して、ユーザーに代わって (自分のアカウントではなく、自分のアカウントに) 投稿したいと考えています。

1) これら 2 つのトークンは、ユーザーのアカウントに投稿するのに十分ですか? 2) これら 2 つのトークンを使用して何かを投稿するにはどうすればよいですか?. 私の特定のケースに適したドキュメントが見つからないようです.AndroidのTwitter API処理は本当に貧弱です.

4

1 に答える 1

0

fabricとそのTweetComposerクラスを使用して、すでに自分で解決しました.....

最初に、アプリのブートストラップ クラスでファブリックを初期化する必要があります

Fabric.with(this, new Twitter(authConfig));

次に、ツイートを作成するクラスで、firebase インスタンスを取得してログイン ユーザーを取得し、firebase UI https://github.com/firebaseにログインしたときに取得した Twitter コンシューマ キーとシークレットを設定します。 /FirebaseUI-Android/blob/master/auth/README.md、ユーザーに代わってツイートするために必要な 2 つのトークンを取得するための今後の参照用に、リンクが指定するように実行できます。

IDP が返した ID トークンを取得するには、結果の Intent から IdpResponse を抽出します。

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) {
        IdpResponse idpResponse = IdpResponse.fromResultIntent(data);
        startActivity(new Intent(this, WelcomeBackActivity.class)
                .putExtra("my_token", idpResponse.getIdpToken()));
    }
}

Twitter also returns an AuthToken Secret which can be accessed with idpResponse.getIdpSecret().

これで、必要なものがすべて揃いました。

    mAuth = FirebaseAuth.getInstance();

            if (mAuth.getCurrentUser() != null) {
                // already signed in

                twitter_consumer_key= preferences.getString("TWITTER_CONSUMER_KEY","");
                twitter_consumer_secret= preferences.getString("TWITTER_CONSUMER_SECRET","");

                TwitterAuthConfig authConfig =  new TwitterAuthConfig(twitter_consumer_key, twitter_consumer_secret);
         //setting up fabric       
         Fabric.with(this, new TwitterCore(authConfig), new TweetComposer());


            }

and then let's say I want to tweet from a custom button onClick:

        ImageButton tweetButton= (ImageButton) findViewById(R.id.tweet_button);

tweetButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                TweetComposer.Builder builder = new TweetComposer.Builder(mContext)
                        .text("just setting up my Fabric.");
                builder.show();

            }
        });

アプリは、事前に設定されたメッセージ「just setting up my Fabric.」を含む twitter アプリにリダイレクトします。写真や動画も入れられる!

ファブリックに関する情報がほとんどないため、これが将来誰かに役立つことを願っています....

于 2016-11-25T20:14:44.343 に答える