新浪微博分享功能
注册帐号后,创建应用后,会得到一个唯一的key和secret,如下图
我在工程中使用的是Oauth2.0隐式授权方式,所以需要在新浪微博开发者平台重定义地址,如下图
需要在工程中加入新浪微博demo中com.weibo.net里面的内容,如下图
需要修改Weibo.java里面的代码
private static String APP_KEY = "";
private static String APP_SECRET = "";
将里面的内容替换成你创建项目时候生成的key和secret
public staticfinal String DEFAULT_REDIRECT_URI = "";
这里也要重新设置成你之前重定义的地址
具体可参考新浪微博的例子
自己封装了一个调用新浪微博的类 SinaWeiboUtil
public class SinaWeiboUtil {
private SinaWeiboRequestListener mWeiboRequestListener;
private TestActivity mActivity;
private static SinaWeiboUtil instance;
public static SinaWeiboUtil getInstance() {
return instance;
}
public static void createInstance(TestActivity activity) {
instance = new SinaWeiboUtil(activity);
}
private SinaWeiboUtil(TestActivity activity) {
mActivity = activity;
}
public void sendSinaWeibo() {
Weibo weibo = Weibo.getInstance();
if (AppConst.WACCESSTOKEN != null) {
weibo.setRedirectUrl(Weibo.DEFAULT_REDIRECT_URI);// 此处回调页内容应该替换为与appkey对应的应用回调页
AccessToken accessToken = new AccessToken(AppConst.WACCESSTOKEN,
Weibo.getAppSecret());
weibo.setAccessToken(accessToken);
accessToken.setExpiresIn("86400");
try {
Log.v("tag==========", "secret =" + Weibo.getAppSecret()
+ " token =" + Weibo.getAppKey());
update(weibo, Weibo.getAppKey(), mActivity
.getResources().getString(R.string.smscontent), "", "");
} catch (MalformedURLException e) {
// TODO Auto-generatedcatch block
e.printStackTrace();
} catch (NotFoundException e) {
// TODO Auto-generatedcatch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generatedcatch block
e.printStackTrace();
} catch (WeiboException e) {
// TODO Auto-generatedcatch block
e.printStackTrace();
}
} else {
// Oauth2.0
// 隐式授权认证方式
weibo.setRedirectUrl(Weibo.DEFAULT_REDIRECT_URI);// 此处回调页内容应该替换为与appkey对应的应用回调页
// 对应的应用回调页可在开发者登陆新浪微博开发平台之后,
// 进入我的应用--应用详情--应用信息--高级信息--授权设置--应用回调页进行设置和查看,
// 应用回调页不可为空
weibo.authorize(mActivity,
new SinaAuthDialogListener(mActivity));
}
}
public void update(Weibo weibo, String source, String status,
String lon, String lat) throws MalformedURLException,IOException,
WeiboException {
WeiboParameters bundle = new WeiboParameters();
bundle.add("source", source);
bundle.add("status", status);
if (!TextUtils.isEmpty(lon)) {
bundle.add("lon", lon);
}
if (!TextUtils.isEmpty(lat)) {
bundle.add("lat", lat);
}
String url = Weibo.SERVER + "statuses/update.json";
AsyncWeiboRunner weiboRunner = new AsyncWeiboRunner(weibo);
if (mWeiboRequestListener == null) {
mWeiboRequestListener = new SinaWeiboRequestListener(mActivity);
}
weiboRunner.request(mActivity, url, bundle, Utility.HTTPMETHOD_POST,
mWeiboRequestListener);
}
}
新浪微博认证对话框接口
SinaAuthDialogListener
public class SinaAuthDialogListenerimplements WeiboDialogListener {
TestActivity mActivity;
public SinaAuthDialogListener(TestActivity activity) {
mActivity = activity;
}
@Override
public void onComplete(Bundle values) {
String token = values.getString("access_token");
String expires_in = values.getString("expires_in");
mActivity.setWAccessToken(token);
Weibo.getInstance();
AccessToken accessToken = new AccessToken(token,
Weibo.getAppSecret());
accessToken.setExpiresIn(expires_in);
Weibo.getInstance().setAccessToken(accessToken);
try {
SinaWeiboUtil.getInstance().update(Weibo.getInstance(),Weibo.getAppKey(), mActivity
.getResources().getString(R.string.smscontent), "", "");
} catch (MalformedURLException e) {
// TODO Auto-generatedcatch block
e.printStackTrace();
} catch (NotFoundException e) {
// TODO Auto-generatedcatch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generatedcatch block
e.printStackTrace();
} catch (WeiboException e) {
// TODO Auto-generatedcatch block
e.printStackTrace();
}
}
@Override
public void onError(DialogError e) {
Toast.makeText(mActivity, "Autherror : " + e.getMessage(),
Toast.LENGTH_LONG).show();
}
@Override
public void onCancel() {
Toast.makeText(mActivity, "Authcancel", Toast.LENGTH_LONG).show();
}
@Override
public void onWeiboException(WeiboException e) {
Toast.makeText(mActivity, "Authexception : " + e.getMessage(),
Toast.LENGTH_LONG).show();
}
}
新浪微博请求接口 SinaWeiboRequestListener
public class SinaWeiboRequestListenerimplements RequestListener {
private TestActivity mActivity;
public SinaWeiboRequestListener(TestActivity activity) {
mActivity = activity;
}
@Override
public void onComplete(String response) {
mActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(mActivity, R.string.send_sucess,
Toast.LENGTH_LONG).show();
}
});
}
@Override
public void onIOException(IOException e) {
// TODO Auto-generatedmethod stub
}
@Override
public void onError(final WeiboException e) {
mActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(
mActivity,
String.format(
mActivity.getString(R.string.send_failed)
+ ":%s", e.getMessage()),
Toast.LENGTH_LONG).show();
}
});
}
}
需要在MainFest中加入以下权限
<uses-permission android:name="android.permission.INTERNET">
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE">
</uses-permission>
<uses-permission android:name="android.permission.WRITE_APN_SETTINGS">
</uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE">
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE">
</uses-permission>
分享到:
相关推荐
本文将详细介绍如何在Android应用中集成新浪微博分享功能,包括授权认证和内容分享的具体步骤。 首先,我们需要在新浪开放平台(http://open.weibo.com/)注册开发者账号,创建一个新的应用,获取到App Key、App ...
在Android平台上实现新浪微博分享功能,是一项常见的社交网络集成任务。开发者常常需要将应用程序中的内容,如文本、图片、链接等,推送到新浪微博平台,以便用户能够与他们的社交圈子分享。以下是一个简化的教程,...
本文将深入探讨"Android新浪微博分享SDK"和"Android腾讯微博分享SDK"的相关知识点,帮助开发者实现高效、便捷的微博分享功能。 1. **微博SDK概述** 微博SDK(Software Development Kit)是由微博官方提供的,用于...
【Android 新浪微博...总的来说,Android 新浪微博客户端是Android开发技术和社交媒体服务的结合体,它的设计和实现涵盖了移动应用开发的多个关键方面。通过不断的优化和改进,它为用户提供了便捷、高效的微博体验。
这个项目"Android新浪微博完整例子"是一个很好的实践,可以帮助开发者深入理解Android应用开发的全貌,从用户交互到后端数据处理的每一个环节。通过学习和分析这个项目,开发者可以提升自己的技能,为未来更复杂的...
"android新浪微博demo"是一个实例项目,展示了如何在Android应用中集成新浪微博的功能,并提供了许多微博特效的实现,这对于开发者来说是一个很好的学习和参考资源。这个项目要求将SDK升级至版本24,这意味着它可能...
总的来说,实现新浪微博分享功能涉及多个步骤,包括SDK的集成、用户授权、构建分享内容、调用API以及处理回调。通过这些步骤,你可以为用户提供一个无缝的分享体验,使他们能方便地将应用内的内容分享到自己的微博...
6. **分享功能实现** - **文本分享**:通过`WeiboShareAPI`的`shareText`方法,传入要分享的文字内容。 - **图片分享**:可以分享本地图片或网络图片,使用`WeiboShareAPI`的`shareImage`方法,传入图片路径或...
本文将详细探讨“Android新浪微博SDK精简版”,并基于提供的链接——http://blog.csdn.net/u013091130/article/details/49466187,解析SDK的使用方法以及关键功能的实现。 首先,了解微博SDK的基本概念。SDK是软件...
这个demo旨在帮助开发者理解并实现如何在Android应用中集成新浪微博分享功能,使得用户可以方便地将内容分享到自己的新浪微博账号。 一、微博SDK介绍 微博SDK(Software Development Kit)是新浪微博提供给开发者...
Android新浪微博客户端是一款基于Android操作系统开发的应用程序,允许用户在移动设备上浏览、发布、分享微博,与其他用户进行互动。该客户端在2011年5月12日进行了更新,可能包含了当时的最新功能和优化,旨在提供...
本篇文章旨在为Android初学者提供一份详尽的指南,教你如何从零开始构建一个功能完备的新浪微博客户端。无论你是否熟悉Java语言或Eclipse IDE,亦或是初次涉足移动设备开发,以下内容都将为你提供宝贵的参考。 ####...
本文将详细介绍Android APP集成新浪微博分享功能的实现步骤和相关知识点。 一、下载新浪微博Android SDK 要集成新浪微博分享功能,首先需要下载新浪微博Android SDK。下载完成后,将libweibosdkcore.jar文件导入到...
本篇文章将围绕“android新浪微博客户端”这一主题,深入探讨如何实现发表、评论、转发等功能,并对完善主页界面进行详尽解析。 首先,构建Android新浪微博客户端的核心在于对接新浪的开放API。这需要开发者注册...
本文将深入探讨Android最新版新浪微博的特点、功能及其在技术实现上的亮点。 首先,Android版新浪微博的界面设计注重用户体验,采用简洁明快的UI布局,使得用户能够快速找到并操作各种功能。在信息流展示上,采用...
总的来说,这个“新浪微博分享文档”是一套全面的开发指南,帮助开发者成功地在Android应用中集成微博功能,实现内容分享,同时处理认证和签名等关键环节。对于想要提升用户体验,增加社交互动性的应用来说,这是不...
"android"标签明确了讨论的焦点在于Android技术,而“新浪微博”则再次确认了这是关于新浪微博的应用程序,特别是其在Android生态中的实现。这意味着我们会探讨如何在Android设备上安装、使用以及可能遇到的技术问题...
本文将深入探讨如何在Android应用中实现基于Oauth2.0的新浪微博文字和图片分享功能。 首先,我们需要理解Oauth2.0的基本原理。Oauth2.0是一种授权框架,它允许第三方应用在用户授权的情况下访问特定资源,而无需...
通过以上步骤,你可以在Android应用中实现对新浪微博的授权登录和内容分享功能。注意,实际开发时还需要考虑错误处理、用户界面设计、网络状态检查等因素,确保良好的用户体验。同时,由于API接口可能会有更新,建议...