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 ,