`

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);
	}
}

 

 

 

分享到:
评论

相关推荐

    android腾讯微博分享demo

    "android腾讯微博分享demo"是一个示例项目,旨在帮助开发者理解并实现如何在Android应用中集成腾讯微博的分享功能。这个Demo经过了测试,被认为工作良好,对初学者来说简单易懂。 首先,我们需要了解腾讯微博开放...

    android 腾讯微博 分享

    在Android平台上,腾讯微博分享是一种常见的社交功能,允许用户将应用程序内的内容,如文本、图片、链接等,快速地发布到自己的腾讯微博账号上,与好友进行互动分享。本教程将详细讲解如何在Android应用中集成腾讯...

    android腾讯微博分享实例

    在Android平台上,腾讯微博分享是一种常见的社交功能,它允许用户将文字、图片、链接等内容一键发布到自己的腾讯微博账号上,与其他用户互动。本实例主要关注如何在Android应用中实现这一功能,通过集成腾讯微博SDK...

    Android新浪微博分享SDK

    本文将深入探讨"Android新浪微博分享SDK"和"Android腾讯微博分享SDK"的相关知识点,帮助开发者实现高效、便捷的微博分享功能。 1. **微博SDK概述** 微博SDK(Software Development Kit)是由微博官方提供的,用于...

    Android腾讯微博源码

    这里我们讨论的是“Android腾讯微博源码”,这是一份宝贵的资源,可以帮助开发者深入理解Android应用开发,特别是社交应用的实现细节。这份源码提供了客户端的全部代码,意味着我们可以探索其背后的架构设计、功能...

    Android 腾讯微博 部分源码

    这份“Android腾讯微博部分源码”为我们提供了一个宝贵的资源,可以深入理解腾讯微博客户端的实现机制,以及如何在Android上构建类似的应用。 源码分析: 1. **网络通信**:腾讯微博的源码中,很可能会包含使用...

    Android 腾讯微博客户端源码1.rar

    【标题】"Android 腾讯微博客户端源码1.rar" 涵盖了Android平台上腾讯微博客户端应用程序的源代码,这是一个深入理解Android应用开发、社交网络集成以及腾讯微博API使用的宝贵资源。在这个源码中,我们可以看到如何...

    Android 腾讯微博客户端源码

    【Android 腾讯微博客户端源码】是一个深入学习Android应用开发的重要资源,它揭示了腾讯微博客户端的具体实现细节,对于开发者来说,是提升技能、理解大型应用架构和交互设计的宝贵材料。在这个项目中,我们可以...

    新浪、腾讯微博,微信好友、朋友圈 分享

    2. 腾讯微博分享: 类似于新浪,腾讯微博也有自己的SDK,同样需要注册获取App ID和App Secret。调用分享接口时,需要用户授权,然后可以分享文本、图片、网页链接等内容。需要注意的是,腾讯微博的分享可能需要处理...

    新浪腾讯微博分享demo

    本篇文章将深入探讨“新浪腾讯微博分享demo”,这是一个专为Android平台设计的示例项目,它实现了通过Oauth2.0协议与新浪微博和腾讯微博的无缝对接,支持文字和图片的分享功能。以下我们将详细解析这个项目的重点...

    简单腾讯微博分享

    总的来说,"简单腾讯微博分享"项目旨在简化Android应用中多平台分享的实现,让开发者能够快速集成和定制分享功能,同时考虑到用户体验和数据安全。通过学习和实践这个项目,开发者可以掌握如何与社交媒体平台进行...

    android仿腾讯微博客户端

    《Android仿腾讯微博客户端开发详解》 在移动互联网飞速发展的今天,社交应用已经成为人们日常生活中不可或缺的一部分。作为中国主流的社交媒体平台,腾讯微博在移动端的重要性不言而喻。本篇将详细介绍如何在...

    腾讯微博开放平台

    在移动开发领域,腾讯微博开放平台为开发者提供了一个强大的工具,允许他们集成微博功能到自己的Android应用程序中。这个平台提供了丰富的API,使得开发者可以轻松实现用户登录、微博发布、信息获取等一系列操作。...

    android微博分享

    在Android平台上实现微博分享功能是..."android腾讯微博分享实例"则可能是一个具体的代码示例,可以帮助开发者更直观地理解和实现微博分享功能。通过阅读和实践这些资源,开发者可以更好地掌握Android微博分享的技巧。

    android腾讯微博OAUTH2.0认证登陆(含发微博)

    RT,基于OAUTH2.0的腾讯微博认证以及发送微博,代码简洁易懂,方便童鞋们开发需要用到分享信息到腾讯微博功能的应用,具体教程可留意我的CSDN博客http://blog.csdn.net/geniuseoe2012

    Android 腾讯微博客户端源码1.zip

    【Android腾讯微博客户端源码1.zip】是一个包含Android应用项目的源码包,主要涉及的是腾讯微博的客户端实现。这个源码对于开发者来说是一份宝贵的参考资料,可以用于学习和理解Android应用开发,特别是针对社交网络...

    [腾讯微博Android客户端开发]课程文档及源代码

    7. **微博功能实现**:具体到腾讯微博,课程会讲解如何实现登录、发布、浏览和评论微博,以及关注和分享等功能。这涉及到了OAuth认证、JSON解析和UI绑定等技术。 8. **性能优化**:学习如何进行内存管理,避免内存...

    3.腾讯微博Android客户端开发——签名、辅助、辅助方法编写

    ### 腾讯微博Android客户端开发之签名、辅助与辅助方法编写 #### 一、引言 在开发腾讯微博Android客户端的过程中,一个重要的环节就是实现API接口的安全访问,特别是通过OAuth认证机制确保数据的安全性和用户的隐私...

    2011年沈大海讲师Android的腾讯微博客户端认证源代码

    "2011年沈大海讲师Android的腾讯微博客户端认证源代码" 这个标题表明这是一个关于2011年由讲师沈大海分享的Android平台上的腾讯微博客户端的源代码项目。其中,"腾讯微博客户端"是指一个应用,它允许用户在Android...

    腾讯微博分享

    腾讯微博分享是社交媒体平台腾讯微博的一项关键功能,它允许用户将文字、图片、视频等内容发布到自己的微博上,并能够一键分享到其他社交网络,与朋友们进行互动和信息传播。在这个场景下,涉及到的主要知识点包括:...

Global site tag (gtag.js) - Google Analytics