`

Android腾讯微博分享

 
阅读更多

http://dev.t.qq.com/ 申请appkey和appsecret.

核心代码:

 

package com.tencent.weibo.sdk.android.demo;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.PopupWindow;
import android.widget.ProgressBar;
import android.widget.Toast;

import com.tencent.weibo.sdk.android.api.WeiboAPI;
import com.tencent.weibo.sdk.android.api.util.Util;
import com.tencent.weibo.sdk.android.component.Authorize;
import com.tencent.weibo.sdk.android.component.GeneralDataShowActivity;
import com.tencent.weibo.sdk.android.component.GeneralInterfaceActivity;
import com.tencent.weibo.sdk.android.component.ReAddActivity;
import com.tencent.weibo.sdk.android.component.sso.AuthHelper;
import com.tencent.weibo.sdk.android.component.sso.OnAuthListener;
import com.tencent.weibo.sdk.android.component.sso.WeiboToken;
import com.tencent.weibo.sdk.android.model.AccountModel;
import com.tencent.weibo.sdk.android.model.BaseVO;
import com.tencent.weibo.sdk.android.model.ModelResult;
import com.tencent.weibo.sdk.android.network.HttpCallback;
public class MainPage_Activity extends Activity {
	
	private Button authorize =null;
	private Button add =null;
	private Button readd =null;
	private Context context = null;
	
	private WeiboAPI weiboAPI;//微博相关API
	private String accessToken;// 用户访问令牌
	private String requestFormat = "json";
	private double longitude = 0d;  //初始
	private double latitude = 0d;
	private HttpCallback mCallBack;//回调函数
	private PopupWindow loadingWindow =  null;
	private ProgressBar progressBar = null;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		this.setContentView(R.layout.main_layout);
		context = this.getApplicationContext();
		this.init();
		
		//这里是粗放的错误提示,只做示例,实际应用时应该细化且友好
		mCallBack = new HttpCallback() {
			@Override
			public void onResult(Object object) {
				ModelResult result = (ModelResult) object;
				if(loadingWindow!=null && loadingWindow.isShowing()){

					loadingWindow.dismiss();
				}
				if(result!=null && result.isSuccess()){
					Toast.makeText(MainPage_Activity.this,
							"分享成功", Toast.LENGTH_SHORT)
							.show();
				}else{
					Toast.makeText(MainPage_Activity.this,
							"分享失败", Toast.LENGTH_SHORT)
							.show();
				}
				
			}
		};
		progressBar = new ProgressBar(this);
		loadingWindow = new PopupWindow(progressBar,100,100);
	}

	public void init(){
		authorize = (Button)findViewById(R.id.authorize);
		authorize.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				
				/**
				 * 跳转到授权组件
				 */
				long appid = Long.valueOf(Util.getConfig().getProperty("APP_KEY"));
				String app_secket = Util.getConfig().getProperty("APP_KEY_SEC");
				auth(appid, app_secket);
			}
		});
		
		add = (Button)findViewById(R.id.add);
		add.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				shareInfo();
			}
		});
		
		readd = (Button)findViewById(R.id.readd);
		readd.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				//startReq();
				/**
				 * 跳转到一键转播组件
				 * 可以传递一些参数
				 * 如content为转播内容
				 * video_url为转播视频URL
				 * pic_url为转播图片URL
				 */
				Intent i = new Intent(MainPage_Activity.this,ReAddActivity.class);
				Bundle bundle = new Bundle();
				bundle.putString("content", "Make U happy");
				bundle.putString("video_url", "http://www.tudou.com/programs/view/b-4VQLxwoX4/");
				bundle.putString("pic_url", "http://t2.qpic.cn/mblogpic/9c7e34358608bb61a696/2000");
				i.putExtras(bundle);
				startActivity(i);
			}
		});
		Button delAuthorize = (Button)findViewById(R.id.exit);
		delAuthorize.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Util.clearSharePersistent(context);
				Toast.makeText(MainPage_Activity.this,"注销成功", Toast.LENGTH_SHORT)
	            .show();
			}
		});
		
		Button comInterface = (Button)findViewById(R.id.commoninterface);
		comInterface.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Intent i = new Intent(MainPage_Activity.this,GeneralInterfaceActivity.class);
				startActivity(i);
			}
		});
		 
	}
	
	private void auth(long appid, String app_secket) {
		final Context context = this.getApplicationContext();
		//注册当前应用的appid和appkeysec,并指定一个OnAuthListener
		//OnAuthListener在授权过程中实施监听
		AuthHelper.register(this, appid, app_secket, new OnAuthListener() {

			//如果当前设备没有安装腾讯微博客户端,走这里
			@Override
			public void onWeiBoNotInstalled() {
				Toast.makeText(MainPage_Activity.this, "onWeiBoNotInstalled", 1000)
						.show();
				AuthHelper.unregister(MainPage_Activity.this);
				Intent i = new Intent(MainPage_Activity.this,Authorize.class);
				startActivity(i);
			}

			//如果当前设备没安装指定版本的微博客户端,走这里
			@Override
			public void onWeiboVersionMisMatch() {
				Toast.makeText(MainPage_Activity.this, "onWeiboVersionMisMatch",
						1000).show();
				AuthHelper.unregister(MainPage_Activity.this);
				Intent i = new Intent(MainPage_Activity.this,Authorize.class);
				startActivity(i);
			}

			//如果授权失败,走这里
			@Override
			public void onAuthFail(int result, String err) {
				Toast.makeText(MainPage_Activity.this, "result : " + result, 1000)
						.show();
				AuthHelper.unregister(MainPage_Activity.this);
			}

			//授权成功,走这里
			//授权成功后,所有的授权信息是存放在WeiboToken对象里面的,可以根据具体的使用场景,将授权信息存放到自己期望的位置,
			//在这里,存放到了applicationcontext中
			@Override
			public void onAuthPassed(String name, WeiboToken token) {
				Toast.makeText(MainPage_Activity.this, "passed", 1000).show();
				//
				Util.saveSharePersistent(context, "ACCESS_TOKEN", token.accessToken);
				Util.saveSharePersistent(context, "EXPIRES_IN", String.valueOf(token.expiresIn));
				Util.saveSharePersistent(context, "OPEN_ID", token.openID);
//				Util.saveSharePersistent(context, "OPEN_KEY", token.omasKey);
				Util.saveSharePersistent(context, "REFRESH_TOKEN", "");
//				Util.saveSharePersistent(context, "NAME", name);
//				Util.saveSharePersistent(context, "NICK", name);
				Util.saveSharePersistent(context, "CLIENT_ID", Util.getConfig().getProperty("APP_KEY"));
				Util.saveSharePersistent(context, "AUTHORIZETIME",
						String.valueOf(System.currentTimeMillis() / 1000l));
				AuthHelper.unregister(MainPage_Activity.this);
			}
		});

		AuthHelper.auth(this, "");
	}

	private void shareInfo(){
		accessToken = Util.getSharePersistent(getApplicationContext(),
				"ACCESS_TOKEN");
		if (accessToken == null || "".equals(accessToken)) {
			Toast.makeText(MainPage_Activity.this, "请先授权",
					Toast.LENGTH_SHORT).show();
			this.finish();
			return ;
		} 
		AccountModel account = new AccountModel(accessToken);
		weiboAPI = new WeiboAPI(account);
		weiboAPI.addWeibo(context, "http://chenzheng8975.iteye.com/腾讯微博测试!", requestFormat, longitude, latitude, 0, 0, mCallBack, null, BaseVO.TYPE_JSON);
	}
}

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics