创建应用,会得到一个唯一的key和secret,如下图
需要导入除了core.jar外的其他包,如下图
我自己写了一个调用腾讯微博的类 TencentWeiboUtil
public class TencentWeiboUtil{
public static final String fileName = "token_store";
private static OAuth oauth;
private static OAuthClient auth;
private final String KEY = "801115034";
private final String SECRET = "6dfcb2d5e8fe5115f917b136ab7ff6e8";
private String clientIp;
private static TencentWeiboUtilinstance;
private TestActivity mActivity;
private String mOauth_token;
private String mOauth_token_secret;
public static TencentWeiboUtilgetInstance() {
if (instance == null) {
instance = new TencentWeiboUtil();
}
return instance;
}
private TencentWeiboUtil() {
if (oauth == null) {
oauth = new OAuth(KEY, SECRET, "qweibo4android://OAuthActivity"); // 初始化OAuth请求令牌
}
mActivity = AppConst.getInstance().getActivity();
}
public void sendTencentWeibo() {
String[] oauth_token_array = fetch(mActivity);
mOauth_token = oauth_token_array[0];
mOauth_token_secret = oauth_token_array[1];
if (mOauth_token != null && mOauth_token_secret != null) {
oauth.setOauth_token(mOauth_token);
oauth.setOauth_token_secret(mOauth_token_secret);
shareTentcentWeibo();
return;
}
// 获取requesttoken
try {
if (auth == null) {
auth = new OAuthClient();// OAuth 认证对象
}
oauth = auth.requestToken(oauth);
if (oauth.getStatus() == 1) {
System.out.println("Get RequestToken failed!");
return;
} else {
String toauth_token = oauth.getOauth_token();
String url = "http://open.t.qq.com/cgi-bin/authorize?oauth_token="
+ toauth_token;
Log.d("tag=========", "AndroidExampleurl = " + url);
Uri uri = Uri.parse(url);
mActivity.startActivity(new Intent(Intent.ACTION_VIEW, uri));
}
} catch (Exception e) {
// TODO Auto-generatedcatch block
e.printStackTrace();
}
}
/**
* get token from verifiercode
*
* @param oauth_verifier
* @param oauth_token
*/
public void getToken(String oauth_verifier, String oauth_token) {
oauth.setOauth_verifier(oauth_verifier);
oauth.setOauth_token(oauth_token);
clientIp = Configuration.wifiIp;
Log.v("tag============", "clientIp:" + clientIp);
try {
oauth = auth.accessToken(oauth);
} catch (VerifyError err) {
err.printStackTrace();
} catch (Exception e) {
// TODO Auto-generatedcatch block
e.printStackTrace();
}
if (oauth.getStatus() == 2) {
System.out.println("Get AccessToken failed!");
return;
} else {
Log.d("tag===========",
"OAuthActivity Oauth_token : " + oauth.getOauth_token());
Log.d("tag===========", "OAuthActivityOauth_token_secret : "
+ oauth.getOauth_token_secret());
// 已经拿到access token,可以使用oauth对象访问所有API了
// 将accesstoken存储到SharedPreferences里
store(mActivity, oauth);
}
shareTentcentWeibo();
}
private void shareTentcentWeibo() {
T_API tapi = new T_API();
String content = "腾讯微博分享测试";
if (content == "") {
content = "发表微博";
}
try {
String str = tapi.add(oauth, "json", content, clientIp, "", "");
Log.v("tag===============", "result str= " + str);
org.json.JSONTokener ae = null;
ae = new org.json.JSONTokener(str);
try {
JSONObject msg = (JSONObject) ae.nextValue();
int errCode = -1;
if (!msg.isNull("errcode")) {
errCode = msg.getInt("errcode");
}
Message message = new Message();
message.what = AppConst.MSG_RECEVIED_TENCENT_WEIBO_RESULT;
if (errCode == 0) {
message.obj = mActivity.getResources().getString(
R.string.send_sucess);
}else {
String result = "";
if (!msg.isNull("msg")) {
result = msg.getString("msg");
message.obj = result;
}
}
AppConst.getInstance().getUIHandler().sendMessage(message);
} catch (Exception ex) {
}
} catch (Exception e) {
// TODO Auto-generatedcatch block
e.printStackTrace();
}
}
public static void store(Activity activity,
com.tencent.weibo.beans.OAuth oauth) {
SharedPreferences settings = activity.getSharedPreferences(fileName,
Context.MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
editor.putString("oauth_token", oauth.getOauth_token());
editor.putString("oauth_token_secret", oauth.getOauth_token_secret());
editor.commit();
}
public static String[] fetch(Activity activity) {
SharedPreferences settings = activity.getSharedPreferences(fileName,
Context.MODE_PRIVATE);
String oauth_token = settings.getString("oauth_token", null);
String oauth_token_secret = settings.getString("oauth_token_secret",
null);
return new String[] { oauth_token, oauth_token_secret };
}
public static void clear(Activity activity) {
SharedPreferences settings = activity.getSharedPreferences(fileName,
Context.MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
editor.clear();
editor.commit();
}
}
在AppConst定义了两个静态全局变量
public static String mOauth_verifier = null;
public static String mOauth_token = null;
定义了腾讯微博分享后跳转的Activity TencentWeiboJumpActivity
public class TencentWeiboJumpActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generatedmethod stub
super.onCreate(savedInstanceState);
Intent intent = new Intent(this, TestActivity.class);
Uri uri = this.getIntent().getData();
if (uri != null) {
AppConst.mOauth_verifier = uri.getQueryParameter("oauth_verifier");
AppConst.mOauth_token = uri.getQueryParameter("oauth_token");
this.startActivity(intent);
}
this.finish();
}
}
在TestActivity的OnResume方法中加入了以下代码
if (AppConst.mOauth_verifier != null && AppConst.mOauth_token != null) {
TencentWeiboUtil.getInstance()
.getToken(AppConst.mOauth_verifier, AppConst.mOauth_token);
AppConst.mOauth_verifier = null;
AppConst.mOauth_token = null;
}
在Mainfest中加入以下信息
<activity
android:name=".TencentWeiboJumpActivity"
android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="OAuthActivity"
android:scheme="qweibo4android"/>
</intent-filter>
</activity>
腾讯微博需要加入的权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
分享到:
相关推荐
总结来说,"android腾讯微博分享demo"是一个实用的教程,它涵盖了在Android应用中集成腾讯微博分享功能的关键步骤,包括SDK集成、权限配置、授权处理、内容分享以及用户交互。对于想要学习这方面的开发者来说,这是...
本教程将详细讲解如何在Android应用中集成腾讯微博分享功能。 首先,我们需要在腾讯开放平台上注册一个开发者账号,并创建一个新的应用。在应用管理页面,获取到应用的AppID和AppKey,这两个参数是后续集成的关键,...
在Android平台上,腾讯微博分享是一种常见的社交功能,它允许用户将文字、图片、链接等内容一键发布到自己的腾讯微博账号上,与其他用户互动。本实例主要关注如何在Android应用中实现这一功能,通过集成腾讯微博SDK...
本文将深入探讨"Android新浪微博分享SDK"和"Android腾讯微博分享SDK"的相关知识点,帮助开发者实现高效、便捷的微博分享功能。 1. **微博SDK概述** 微博SDK(Software Development Kit)是由微博官方提供的,用于...
这份“Android腾讯微博部分源码”为我们提供了一个宝贵的资源,可以深入理解腾讯微博客户端的实现机制,以及如何在Android上构建类似的应用。 源码分析: 1. **网络通信**:腾讯微博的源码中,很可能会包含使用...
这里我们讨论的是“Android腾讯微博源码”,这是一份宝贵的资源,可以帮助开发者深入理解Android应用开发,特别是社交应用的实现细节。这份源码提供了客户端的全部代码,意味着我们可以探索其背后的架构设计、功能...
2. 腾讯微博分享: 类似于新浪,腾讯微博也有自己的SDK,同样需要注册获取App ID和App Secret。调用分享接口时,需要用户授权,然后可以分享文本、图片、网页链接等内容。需要注意的是,腾讯微博的分享可能需要处理...
本篇文章将深入探讨“新浪腾讯微博分享demo”,这是一个专为Android平台设计的示例项目,它实现了通过Oauth2.0协议与新浪微博和腾讯微博的无缝对接,支持文字和图片的分享功能。以下我们将详细解析这个项目的重点...
【标题】"Android 腾讯微博客户端源码1.rar" 涵盖了Android平台上腾讯微博客户端应用程序的源代码,这是一个深入理解Android应用开发、社交网络集成以及腾讯微博API使用的宝贵资源。在这个源码中,我们可以看到如何...
在这个项目中,我们可以看到如何将微博功能集成到Android应用中,包括登录、发布、浏览、评论和分享等基本操作。 首先,我们要了解Android应用的基本结构,这通常包括`Activity`(用于用户交互的界面)、`Service`...
总的来说,"简单腾讯微博分享"项目旨在简化Android应用中多平台分享的实现,让开发者能够快速集成和定制分享功能,同时考虑到用户体验和数据安全。通过学习和实践这个项目,开发者可以掌握如何与社交媒体平台进行...
在移动开发领域,腾讯微博开放平台为开发者提供了一个强大的工具,允许他们集成微博功能到自己的Android应用程序中。这个平台提供了丰富的API,使得开发者可以轻松实现用户登录、微博发布、信息获取等一系列操作。...
《Android仿腾讯微博客户端开发详解》 在移动互联网飞速发展的今天,社交应用已经成为人们日常生活中不可或缺的一部分。作为中国主流的社交媒体平台,腾讯微博在移动端的重要性不言而喻。本篇将详细介绍如何在...
RT,基于OAUTH2.0的腾讯微博认证以及发送微博,代码简洁易懂,方便童鞋们开发需要用到分享信息到腾讯微博功能的应用,具体教程可留意我的CSDN博客http://blog.csdn.net/geniuseoe2012
【Android腾讯微博客户端源码1.zip】是一个包含Android应用项目的源码包,主要涉及的是腾讯微博的客户端实现。这个源码对于开发者来说是一份宝贵的参考资料,可以用于学习和理解Android应用开发,特别是针对社交网络...
7. **微博功能实现**:具体到腾讯微博,课程会讲解如何实现登录、发布、浏览和评论微博,以及关注和分享等功能。这涉及到了OAuth认证、JSON解析和UI绑定等技术。 8. **性能优化**:学习如何进行内存管理,避免内存...
### 腾讯微博Android客户端开发之签名、辅助与辅助方法编写 #### 一、引言 在开发腾讯微博Android客户端的过程中,一个重要的环节就是实现API接口的安全访问,特别是通过OAuth认证机制确保数据的安全性和用户的隐私...
"2011年沈大海讲师Android的腾讯微博客户端认证源代码" 这个标题表明这是一个关于2011年由讲师沈大海分享的Android平台上的腾讯微博客户端的源代码项目。其中,"腾讯微博客户端"是指一个应用,它允许用户在Android...
腾讯微博分享是社交媒体平台腾讯微博的一项关键功能,它允许用户将文字、图片、视频等内容发布到自己的微博上,并能够一键分享到其他社交网络,与朋友们进行互动和信息传播。在这个场景下,涉及到的主要知识点包括:...
在移动应用开发中,将应用与社交媒体平台如新浪和腾讯微博进行绑定,是提升用户体验、增加用户参与度和分享功能的重要手段。本文将详细介绍如何在你的应用中实现新浪及腾讯微博的绑定,并讨论相关的技术要点。 一、...