2013年4月13日 星期六

[Android] Weibo Share via sso 微博分享 sso 方法


SSO 說明參考 官方文件
移动应用SSO授权

這是 微博分享的番外篇 呀!

簡單的來說, 如果使用者的手機有安裝 Weibo  客戶端, 那麼要分享的 App 就可以直接調用這個 weibo APP 來進行分享.

微博分享的番外篇  提到怎樣使用weibo sdk 進行 OAuth2.0 授權已及怎樣調用 api 分享文件。 現在要這基礎上, 加上透過 sso 的方式獲取授權

1. Import SSO packages 

SSO 的 package 有兩個 1. com.sina.sso 2 com.weibo.skd.android.sso  import 到 ShareWeibo(My own App)

2. 在 Program 中呼叫使用 SsoHandler 來進行 sso 授權

直接調用 ssoHandler 的 authorize 就好!  如果APP 有支援 3.0 以上的微博版本, 就會透過 sso 來授權, 要不然 SsoHandler 就會直接呼叫 Weibo.java 作OAuth2.0 授權。 User 並不用再寫一個判斷了

  mSsoHandler = new SsoHandler(ShareActivity.this, m_weibo);
  mSsoHandler.authorize(new WeiboAuthDialog(ShareActivity.this));

       (OAuth2.0 授權是  m_weibo.authorize(this, new WeiboAuthDialog(this));)





3. 必須 override onActivityResult

@Override
   protected void onActivityResult(int requestCode, int resultCode, Intent data) {
       super.onActivityResult(requestCode, resultCode, data);

       if (mSsoHandler != null) {
           mSsoHandler.authorizeCallBack(requestCode, resultCode, data);
       }
   }



3. 最後結果傳到 WeiboAuthDialog - onComplete



 public void onComplete(Bundle values){
         String token = values.getString("access_token"); //傳回的 values 帶有 token info
         String expires_in = values.getString("expires_in");

//使用Oauth2AccessToken 作Token 的存取, 不用自己在寫個SharedPreference
         accessToken = new Oauth2AccessToken(token, expires_in);

         if (accessToken.isSessionValid()) {

         AccessTokenKeeper tokenkeeper = new AccessTokenKeeper();

        tokenkeeper.keepAccessToken(uiActivity,accessToken);


       // 作想要做的事情, 如, 發送到微博分享

         }
    }


沒有留言:

張貼留言