当前位置:操作系统 > 安卓/Android >>

android腾讯微博Oauth2.0认证以及登录

下面上几张效果图:

 

 

 

 

其实不同微博它们的认证过程都是大同小异

我们在认证页面认证通过后需要获得三个值:

access_token  授权码

openid              用户统一标识 ,可以唯一标识一个用户     

openkey          与openid对应的用户key,是验证openid身份的验证密钥

 

得到这三个值后将其保存到数据库,下次再进入应用的时候,将其设入OAuthV2即可(本例采用2.0认证,故接口调用均涉及到此类)

先看看webview认证页面代码:

[java]
public class OAuthV2WebViewActivity extends Activity { 
     
    private final CommonLog log = LogFactory.createLog(); 
 
    private View progressBar; 
     
     
    private Context mContext; 
    private WebView mWebView; 
    private WebViewClient mWebViewClient; 
    private QQWeiboProxy mQqWeiboProxy; 
     
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        
        setContentView(R.layout.webview_layout); 
        mContext = this; 
         
        initView(); 
        
        initData(); 
       
        
    } 
     
     
    private void initView() 
    { 
        mWebView = (WebView) findViewById(R.id.webview); 
        mWebView.setVerticalScrollBarEnabled(false); 
        mWebView.setHorizontalScrollBarEnabled(false); 
        mWebView.requestFocus(); 
         
        WebSettings webSettings = mWebView.getSettings(); 
        webSettings.setJavaScriptEnabled(true); 
        webSettings.setBuiltInZoomControls(true); 
        webSettings.setSupportZoom(true); 
        webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE); 
         
        progressBar = findViewById(R.id.show_request_progress_bar); 
    } 
     
    private void initData() 
    { 
        mWebViewClient = new WeiboWebViewClient(); 
        mWebView.setWebViewClient(mWebViewClient); 
         
        CookieSyncManager.createInstance(this); 
          
        mQqWeiboProxy = QQWeiboProxy.getInstance(); 
        String urlStr = mQqWeiboProxy.getAuthoUrl(); 
 
        mWebView.requestFocus(); 
        mWebView.loadUrl(urlStr); 
    } 
     
    private void showProgress() 
    { 
        runOnUiThread(new Runnable() { 
             
            @Override 
            public void run() { 
                // TODO Auto-generated method stub 
                progressBar.setVisibility(View.VISIBLE); 
            } 
        }); 
         
    } 
     
    private void hideProgress() 
    { 
        runOnUiThread(new Runnable() { 
             
            @Override 
            public void run() { 
                // TODO Auto-generated method stub 
                progressBar.setVisibility(View.INVISIBLE); 
            } 
        }); 
 
 
    } 
 
     
     private class WeiboWebViewClient extends WebViewClient 
     { 
         @Override 
         public void onPageStarted(WebView view, String url, Bitmap favicon) { 
             showProgress(); 
             log.e("onPageStarted   URL = " + url); 
             if (url.indexOf("access_token=") != -1) { 
                 int start=url.indexOf("access_token="); 
                 String responseData=url.substring(start); 
                 
                 boolean ret = mQqWeiboProxy.parseAccessTokenAndOpenId(responseData); 
                 if (ret) 
         

补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,