前言:看了折磨多的Umeng的文档和demo,还是不禁想吐槽一下,敢不敢把文档的流程和demo写好点。文档的流程很粗,只有大概的轮廓,步骤不详细。demo,好吧,基本的不封装一下就算了,分享信息到处都是,控制器的获取还和文档不一致。虽然看到的demo是这么的糟,所幸提供的功能还是集成可以用的。(吐槽4.3)
(注:以下开发者账号简称账号)
一、新浪微博集成过程
新浪微博开放平台:http://open.weibo.com
吐槽:更着官方文档走走看。不走不知道,一走吓一跳。
1.准备工作
a.umeng账号(创建应用),新浪账号(创建应用)
b.配置基本信息
umeng要社交平台配置【笔者猜测:由于在客户端未进行对新浪id和key的配置,此处的配置应该是umeng的开发者后台响应客户端的请求后用此处的配置去请求新浪,再将结果放在客户端呈现】
新浪配置
此处一定要配置四个信息: Android签名 安全域名 授权|取消授权回调页 测试帐号
注:Android签名和安全域名一定要弄,笔者测试过,不填就链不到授权界面,估计是用来验证umeng传过来的应用信息。授权|取消授权回调页就不用说了,估计是起调的页面。至于测试帐号,是开发时候用的,应用通过审核上线估计是用不上的
2.xml配置
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.abfdemo"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.abfdemo.umeng.ShareActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.abfdemo.umeng_share.ThirdLoginActivity"/>
<!-- ************************umeng start***************************************** -->
<!-- ###################添加UmengAppkey###################### -->
<meta-data
android:name="UMENG_APPKEY"
android:value="5698ab1be0f55a2193000fe6" >
</meta-data>
</application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.SET_DEBUG_APP" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<!-- ************************umeng end***************************************** -->
</manifest>
3.核心
a.添加成员变量 mController
b.授权 | 取消授权接口 mController.doOauthVerify(...) | deleteOauth(....) 【一般是按钮事件处触发】
c.获取accesstoken及用户资料 mController.getPlatformInfo(....)【后续的相关操作】
更多详细,请参考demo
注:新浪需要配置sina SSO(免登录)开关和 onActivityResult()中的SSO授权回调【详见代码】;注销登录需要先登录【一般是当用户注销了本应用的id时,才会调用该方法注销新浪的sso】4.demo下载:http://download.csdn.net/detail/zinjin_woxin/9406345
二、QQ集成过程
1.准备工作
QQ开发者,并创建应用(和新浪微博类似)。添加测试账号:
2.新增xml配置
<!-- ############ QQ登陆start-->
<!-- ############ QQ空间和QQ SSO授权的Activity注册 ############ -->
<activity
android:name="com.tencent.tauth.AuthActivity"
android:launchMode="singleTask"
android:noHistory="true" >
<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:scheme="tencent你的QQ互联APPID" />
</intent-filter>
</activity>
<activity android:name="com.tencent.connect.common.AssistActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:screenOrientation="portrait">
</activity>
<!-- ############ QQ登陆end-->
3.核心【基本同新浪】
QQ平台的配置:【详见代码】
UMQQSsoHandler qqSsoHandler = new UMQQSsoHandler(getActivity(), Constants.APP_ID_QQ,Constants.APP_KEY_QQ);
qqSsoHandler.addToSocialSDK();
4.demo下载
三、QQ空间集成过程
几乎和QQ一样,唯一不同的地方在于平台配置
QQ空间的平台配置:
QZoneSsoHandler qZoneSsoHandler = new QZoneSsoHandler(this,Constants.APP_ID_QQ,Constants.APP_KEY_QQ);
qZoneSsoHandler.addToSocialSDK();
基本上完成QQ登陆,只需修改这一处即可。【详见代码】
demo下载
四、微信集成过程