android 第三方应用-新浪微博授权
来源:互联网 发布:有向图的关联矩阵 编辑:程序博客网 时间:2024/05/17 23:30
微博第三方登录。将框架和jar包导入,分为三步可以使用。本篇是简单的登录,发表微博,读取最新微博
1.授权:
//授权登录 String appKey = "355856";//keyString redirectUrl = "http://www.baidu.com";//这是回调的网址String scope = "all";//授权选项为所有WeiboAuth auth = new WeiboAuth(this, appKey, redirectUrl, scope);auth.authorize(new WeiboAuthListener() {
public void onComplete(Bundle arg0) {//这个方法是授权返回的数据
2.认证
//认证请求String url = "https://api.weibo.com/oauth2/access_token";//微博提供接口的地址String httpMethod = "POST";//请求方式WeiboParameters params = new WeiboParameters();//请求参数params.add("client_id", "3558572486");params.add("client_secret", "e4c1505d8d2004ac04223fb6bd038a0e");params.add("grant_type", "authorization_code");params.add("code", string);params.add("redirect_uri", "http://www.baidu.com");AsyncWeiboRunner.request(url, params, httpMethod,new RequestListener() {
public void onComplete(String response) {//这个方法是认证通过
3.登录
<span></span>Log.i("zzz", response);//Json格式解析JSONObject json = new JSONObject(response);String token = json.getString("access_token");//根据官方解释,如果是atho认证必须有这个
package com.example.weibotest;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.util.ArrayList;import java.util.List;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.ParseException;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.methods.HttpPost;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.message.BasicNameValuePair;import org.apache.http.util.EntityUtils;import org.json.JSONException;import org.json.JSONObject;import com.example.oaut.AsyncWeiboRunner;import com.example.oaut.RequestListener;import com.sina.weibo.sdk.auth.WeiboAuth;import com.sina.weibo.sdk.auth.WeiboAuthListener;import com.sina.weibo.sdk.auth.WeiboParameters;import com.sina.weibo.sdk.exception.WeiboException;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.View;public class Mainactivity extends Activity {@Overrideprotected void onSaveInstanceState(Bundle outState) {super.onSaveInstanceState(outState);} @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_mainactivity); } public void oauth(View v){ //授权登录 String appKey = "3558572486";//keyString redirectUrl = "http://www.baidu.com";//这是回调的网址String scope = "all";//授权选项为所有WeiboAuth auth = new WeiboAuth(this, appKey, redirectUrl, scope);auth.authorize(new WeiboAuthListener() {@Overridepublic void onWeiboException(WeiboException arg0) {// TODO Auto-generated method stub}@Overridepublic void onComplete(Bundle arg0) {//这个方法是授权返回的数据String string = arg0.getString("code");//返回的数据是code//认证请求String url = "https://api.weibo.com/oauth2/access_token";//微博提供接口的地址String httpMethod = "POST";//请求方式WeiboParameters params = new WeiboParameters();//请求参数params.add("client_id", "3558572486");params.add("client_secret", "e4c1505d8d2004ac04223fb6bd038a0e");params.add("grant_type", "authorization_code");params.add("code", string);params.add("redirect_uri", "http://www.baidu.com");AsyncWeiboRunner.request(url, params, httpMethod,new RequestListener() {@Overridepublic void onIOException(IOException e) {}@Overridepublic void onError(WeiboException e) {}@Overridepublic void onComplete4binary(ByteArrayOutputStream responseOS) {// TODO Auto-generated method stub}@Overridepublic void onComplete(String response) {//这个方法是认证通过try {Log.i("zzz", response);//Json格式解析JSONObject json = new JSONObject(response);String token = json.getString("access_token");//必须有String uid = json.getString("uid");//当前授权用户的uidLog.i("zzz", "token:"+token);poseWeibo(token);//发表微博getWeibo(token);//获取微博内容} catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();}}private void getWeibo(String token) {//搭建客户端HttpClient client = new DefaultHttpClient();//请求方式//get请求时要加连接符获取数据HttpGet get = new HttpGet("https://api.weibo.com/2/statuses/public_timeline.json?token="+token);try {//响应请求获得数据HttpResponse response = client.execute(get);//将数据转换成实体数据String entity = EntityUtils.toString(response.getEntity(),"UTF-8");//查看数据Log.i("zzz", entity);} catch (ClientProtocolException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public void poseWeibo(String token) {//搭建客户端HttpClient client = new DefaultHttpClient();//请求方式HttpPost post = new HttpPost("https://api.weibo.com/2/statuses/update.json");//定义携带的实体数据List<BasicNameValuePair> parameters = new ArrayList<BasicNameValuePair>();parameters.add(new BasicNameValuePair("access_token",token));parameters.add(new BasicNameValuePair("status", "这是测试02"));//发表微博。字段status为true必填HttpEntity entity = null;try { entity = new UrlEncodedFormEntity(parameters,"UTF-8");//必须设置否则是乱码} catch (UnsupportedEncodingException e) {// TODO Auto-generated catch blocke.printStackTrace();}//绑定实体数据post.setEntity(entity);//客户端响应请求HttpResponse response = null;try { response = client.execute(post);} catch (ClientProtocolException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}//返回实体对象String enti=null;try { enti = EntityUtils.toString(response.getEntity(), "UTF-8");} catch (ParseException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}});}@Overridepublic void onCancel() {// TODO Auto-generated method stub}}, WeiboAuth.OBTAIN_AUTH_CODE); }}
0 0
- android 第三方应用-新浪微博授权
- Android平台下Facebook,Google service, 新浪微博接入第三方应用SSO授权教程
- Android第三方授权分享在新浪微博授权提示:文件不存在 C8998 的解决方法
- Android应用接入第三方登陆之新浪微博
- Android应用第三方授权登录 之 【腾讯微博】
- 调用新浪微博第三方登陆授权流程
- Android第三方登陆之新浪微博Weibo篇(原生登陆授权)
- android使用新浪微博最新SDK4.1进行第三方授权登录
- Android 新浪微博第三方登录
- 新浪微博第三方Android客户端
- 新浪微博第三方Android客户端
- 基于第三方QQ授权登录和新浪微博授权登录的iOS代码分析
- 基于第三方QQ授权登录和新浪微博授权登录的iOS代码分析
- 基于第三方QQ授权登录和新浪微博授权登录的iOS代码分析
- 微信第三方授权登录之Android app应用
- Android开发全程记录(九)——使用新浪微博登录第三方应用
- 第三方应用使用微博登录授权功能注意事项
- Android的集成新浪微博第三方登录
- 【mongodb系统学习之三】进入mongodb shell
- 标示符
- 深入理解Java多态性
- Chapter 4. URLs
- python字典多键值及重复键值的使用
- android 第三方应用-新浪微博授权
- Windows Mobile Emulator:Failed to open the VPC Network Driver.
- 页面自动执行(加载)js的几种方法
- [小技巧] git 中查看某个文件是什么时候被删除的
- java判断服务器是那种,例如区分tomcat和weblogic
- AVS3.0 程序分析1
- 在1000个数中找出出现次数最多的数
- UVALive 6859 Points (凸包)
- Arrays类与Array类探究