簡體   English   中英

Twitter Android-FirebaseUI身份驗證:一旦我擁有Android應用上的訪問令牌和訪問密碼,如何代表用戶發布?

[英]Twitter Android-FirebaseUI auth: How to post on user's behalf once I have the access Token and the access secret on Android App??are those enough?

我成功登錄,並使用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();
    }
}

我想使用將保存在共享首選項上的這兩個令牌代表用戶發布(到他們的帳戶,而不是我的帳戶)。

1)這兩個令牌足以發布到用戶的帳戶嗎? 2)如何使用這兩個令牌發布內容? 我似乎找不到適合我的特殊情況的文檔,Android的twitter api處理真的很差。

我已經通過使用fabric及其TweetComposer類解決了它自己.....

首先,您需要在應用程序的引導類上初始化結構

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

然后在要發送鳴叫的類上,獲取firebase實例以獲取登錄用戶,然后設置登錄到firebase UI https://github.com/firebase時獲得的twitter使用者密鑰和秘密/FirebaseUI-Android/blob/master/auth/README.md ,以供將來參考以獲取代表用戶進行鳴叫所需的兩個令牌,您可以像鏈接中指定的那樣進行操作:

要檢索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();

            }
        });

該應用程序將通過預設消息“僅設置我的Fabric”將您重定向到Twitter應用程序。 您也可以添加圖片和視頻!

希望這對以后的人有所幫助,因為關於面料的信息很少。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM