QQ,微信,新浪原生分享

提要: QQ ,微信分享 ,新浪分享(需要授权后分享)

QQ开发者平台登录网址:(免登录分享)

http://open.qq.com/login

微博分享:(如果只需要分享功能不需要审核)

1.注册开发者账号

进入新浪微博提供的开放平台 注册新浪账号:http://open.weibo.com/

在管理中心需要创建一个应用,得到Appkey,如果只是实现分享的功能也不需要提交审核。

2.应用信息

基本信息页面:需要填写Android签名

签名工具下载地址:https://github.com/mobileresearch/weibo_android_sdk/blob/master/app_signatures.apk

安装到手机,打开签名工具输入包名,生成一个唯一的MD5校验码,填写即可。

高级信息页面:需要填写授权回调页面,需要与程序代码中的REDIRECT_URL一致,如下图所示

3.讲WeiboSDK引入到自己的项目当中

WeiboSDK下载地址:http://open.weibo.com/wiki/SDK#Android_SDK

4.实现认证及分享

<pre name="code" class="java">

/**

* 该类演示了第三方应用如何通过微博客户端分享内容。

* 执行流程: 从本应用->微博->本应用

*/

public class WBShareActivity extends Activity implements Response,

OnClickListener {

/** 微博分享按钮 */

private Button mShareButton;

/** 微博实例 */

private AuthInfo mAuthInfo;

/** 注意:SsoHandler 仅当 SDK 支持 SSO 时有效 */

private SsoHandler mSsoHandler;

/** 封装了 "access_token","expires_in","refresh_token",并提供了他们的管理功能  */

private Oauth2AccessToken mAccessToken;

/** 是否安装微博*/

private boolean isInstalledWeibo;

/** 支持Api级别*/

private int supportApiLevel;

/** 微博分享的接口实例 */

private IWeiboShareAPI mWeiboShareAPI;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_wbshare);

//点击执行分享操作

mShareButton = (Button) findViewById(R.id.register_app_to_weibo);

mShareButton.setOnClickListener(this);

}

@Override

public void onClick(View v) {

// 创建微博实例

mAuthInfo = new AuthInfo(this, Constants.WB_APP_KEY,

Constants.REDIRECT_URL, Constants.SCOPE);

mSsoHandler = new SsoHandler(this, mAuthInfo);

// SSO 授权, 仅客户端

mSsoHandler.authorizeClientSso(new AuthListener());

// 创建微博 SDK 接口实例

mWeiboShareAPI = WeiboShareSDK.createWeiboAPI(this,

Constants.WB_APP_KEY);

// 注册第三方应用到微博客户端中,注册成功后该应用将显示在微博的应用列表中。

// 但该附件栏集成分享权限需要合作申请,详情请查看 Demo 提示

// NOTE:请务必提前注册,即界面初始化的时候或是应用程序初始化时,进行注册

mWeiboShareAPI.registerApp();

// 当 Activity 被重新初始化时(该 Activity 处于后台时,可能会由于内存不足被杀掉了),

// 需要调用 {@link IWeiboShareAPI#handleWeiboResponse} 来接收微博客户端返回的数据。

// 执行成功,返回 true,并调用 {@link IWeiboHandler.Response#onResponse};

// 失败返回 false,不调用上述回调

mWeiboShareAPI.handleWeiboResponse(getIntent(), this);

// 获取微博客户端是否安装

isInstalledWeibo = mWeiboShareAPI.isWeiboAppInstalled();

// 支持 SDK 的版本

supportApiLevel = mWeiboShareAPI.getWeiboAppSupportAPI();

}

/**

* 微博认证授权回调类。 1. SSO 授权时,需要在 {@link #onActivityResult} 中调用

* {@link SsoHandler#authorizeCallBack} 后, 该回调才会被执行。 2. 非 SSO

* 授权时,当授权结束后,该回调就会被执行。 当授权成功后,请保存该 access_token、expires_in、uid 等信息到

* SharedPreferences 中。

*/

class AuthListener implements WeiboAuthListener {

@Override

public void onComplete(Bundle values) {

// 从 Bundle 中解析 Token

mAccessToken = Oauth2AccessToken.parseAccessToken(values);

// 判断AccessToken是否有效

if (mAccessToken.isSessionValid()) {

// 保存 Token 到 SharedPreferences

AccessTokenKeeper.writeAccessToken(WBShareActivity.this,mAccessToken);

Toast.makeText(WBShareActivity.this, "获取token成功",Toast.LENGTH_SHORT).show();

shareToWeiBo();

} else {

System.out.println("认证失败");

}

}

@Override

public void onCancel() {

Toast.makeText(WBShareActivity.this, "取消", Toast.LENGTH_LONG)

.show();

}

@Override

public void onWeiboException(WeiboException e) {

Toast.makeText(WBShareActivity.this,

"Auth exception : " + e.getMessage(), Toast.LENGTH_LONG)

.show();

}

}

/**

* 分享到微博

*/

private void shareToWeiBo() {

if (isInstalledWeibo) {

if (mWeiboShareAPI.isWeiboAppSupportAPI()) {

if (supportApiLevel >= 10351 /* ApiUtils.BUILD_INT_VER_2_2 */) {

// 1. 初始化微博的分享消息

WeiboMultiMessage weiboMessage = new WeiboMultiMessage();

//这里指实现了分享文本內容 还可以分享 图片 视频 音乐 声音 网页 详见WeiboSDKDemo

TextObject textObject = new TextObject();

textObject.text = "分享消息";

weiboMessage.textObject = textObject;

// 2. 初始化从第三方到微博的消息请求

SendMultiMessageToWeiboRequest request = new SendMultiMessageToWeiboRequest();

// 用transaction唯一标识一个请求

request.transaction = String.valueOf(System

.currentTimeMillis());

request.multiMessage = weiboMessage;

// 3. 发送请求消息到微博,唤起微博分享界面

mWeiboShareAPI.sendRequest(WBShareActivity.this, request);

}

} else {

Toast.makeText(this, "SDK不支持", Toast.LENGTH_SHORT).show();

}

} else {

Toast.makeText(this, "没有安装新浪微博客户端", Toast.LENGTH_LONG).show();

}

遇到的问题:

授权时:

文件不存在 c8998

有两种情况:应用的签名不一致,微博回调 不一致

解决办法:新浪开发者-》我的应用(上方)--》应用信息--》高级信息(子目录)--》)

OAuth2.0 授权设置  

授权回调页:

mAuthInfo = new AuthInfo(this, Constants.WB_APP_KEY,

Constants.REDIRECT_URL, Constants.SCOPE);  Constants.REDIRECT_URL 要一致。

第二种就是签名问题了。分享时,需要先打包(或者配置debug 签名)。

时间: 2024-12-14 18:43:09

QQ,微信,新浪原生分享的相关文章

QQ 微信 新浪 无法 分享 收集

1.网络请求报错.升级Xcode 7.0发现网络访问失败.输出错误信息 The resource could not be loaded because the App Transport Security policy requires the use of a secure connection. 原因:iOS9引入了新特性App Transport Security (ATS).详情:App Transport Security (ATS)新特性要求App内访问的网络必须使用HTTPS协议

新浪微薄分享一(授权)

闲来无事,想把项目中用到的第三方组件总结一下,省的以后用到还得重新学习.接下来的一系列文章涉及到的第三方组件有新浪.腾讯.微信等第三方分享和登录,支付宝,个推等. 今天先说一下新浪微薄分享之授权.因为我们一个项目中一般设计到的分享都有好几种,如果都引用对应的sdk的话项目相对比较大.另外sdk官方都推出了Demo,使用起来也比较简单,所以我们这里讲的都是网页接入. 无论是分享还是登录,首先要做的都是获得用户授权.授权目前有两种方式,我们先讲目前推荐的方式,主要分为二步 第一步:请求授权,获取Co

Android 仿QQ、新浪相册的实现

在移动应用中,很多时候都会用到图片选择.图片裁剪等功能.最近我也在准备一个开源的相册项目,以方便以后开发应用的时候使用,也尽可能的方便需要的人.一个完整的相册,应该包含相册列表.图片列表.图片的单选和多选.图片的裁剪.拍照.多选图片的大图预览等功能.这也是我这个项目将要包含的功能.在本篇博客中,将会讲述下我在这个项目中相册列表和图片列表的大致实现. 实现效果 结合几个常用的APP中的相册效果,当前项目中已经实现了一些基本的功能和UI,在后续完善的过程中还会有所变动.项目在Github上开源,欢迎

Android:Umeng(友盟) 微信,QQ,新浪分享 (三)

第一步: 下载并安装SDK 添加代码和资源引用,我们提供了添加资源文件和jar文件的两种方式,可以根据需求选择 解压SDK压缩包,将文件夹中的'main/libs'和'main/res'文件夹复制到你的项目工程根目录下(如使用'ADT 17'以下用户需要手动添加'libs'下的jar文件到工程Path中) 结合上两篇文章 PushSDKMoudle中添加QQ,微信,新浪分享后的libs结构: 注:除jar包外,其余文件夹均需添加对应分享的so包.没有则不添加,附图: 第二步: AndroidMa

微信 新浪

//QQ URL   public ActionResult QQLocation()   { var response_type = "code"; string state = "1"; string url = string.Format("https://graph.qq.com/oauth2.0/authorize?response_type={0}&client_id={1}&redirect_uri={2}&state

Fragment+FragmentTabHost组件实现常见主页面(仿微信新浪)

采取的方法是Fragment+FragmentTabHost组件来实现这种常见的app主页面的效果 首先给出main.xml文件 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:orientation="vertica

Android 第三方QQ、微信、微博登录分享

最近弄了下QQ微信微博的登录分享,在这里做一下总结,以下登录分享使用的都是官方的最新SDk. 首先是QQ的登录: 1.第一步肯定是先去开放平台注册应用,这里步骤就不详细说了 http://open.qq.com/ 2.将下载好的jar包导入工程,在AndroidManifest文件里面注册SDK里面提供的Activity <activity android:name="com.tencent.tauth.AuthActivity" android:launchMode="

001_汽车之家,新浪和360之间的交流

记addops两次分享交流 本着开放共赢的精神,addops团队分别组织并参加了与"汽车之家"."新浪"的技术交流分享会.此次交流不同于传统技术大会的形式,我们只讨论干货,在具体技术点上做了非常细致的讨论.在与这两个团队的技术分享讨论中,我们互相"碰撞出思维的火花","互相参考学习",可以说收获满满. 同时也欢迎其它公司运维团队积极与我们联系,共同交流,相互成长学习. 汽车之家 我们邀请了汽车之家运维团队来我司进行技术交流.

andriod 实现新浪、QQ空间、微信朋友圈、微信好友分享功能

前言:自己在学习的过程中的一些操作过程,对分享的一些理解.下面就讲解一下: 下载地址:http://download.csdn.net/detail/u014608640/7490357 首先,我们需要去ShareSdk官方网站http://sharesdk.cn/ 去下载ShareSDK ,然后我们会有4个文件: 根据我自己在学习的过程中只用到了第一个文件夹的 libs目录的2个项目,这2个是必须要的,是ShareSdk提供的,然后需要将这2个放入到自己做的项目当中去,在Res目录下有一个 S