现在很多APP都实现QQ微信的第三方登录,这样会是用户量提升,还会方便用户的使用。
由于第三方登录的认证授权流程大致都是一样的,在这里我只讲QQ的登录授权流程:这里使用的是友盟的shareSDK
首先去友盟下载(有账号的情况下,没有就先去注册友盟账号)然后找到下载SDK里面有统计,推送和社会分享三个模块,今天使用社会分享,下边就是让你选择用那些平台,今天我就选择QQ和微信
下载完成后进入SDK文档去配置项目
首先打开刚下载的文件找到share文件 进去找到友盟集成工具 选择你要集成的平台
点击确定会多出来一个文件
然后把这里连的文件导入你项目对应的文件下common文件和thirdparties文件下的荚包也需要导入
这样SDK就导入成功了
接下来就是配置项目了
首先初始化SDK新建一个MyApplication 各个平台的配置 这里是QQ和微信,(微信申请需要三百块大洋哦)
接下来就是权限了
<uses-permission android:name="android.permission.WRITE_APN_SETTINGS" /> <uses-permission android:name="android.permission.INSTALL_PACKAGES" /> <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.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
在AndroidManifest清单配置文件方式初始化appkey和channel
然后配置QQ完整版权限
<!-- QQ完整版 --> <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" /> //这里是申请腾讯开放平台是给QQ ID <data android:scheme="tencent000000000" /> </intent-filter> </activity> <activity android:name="com.tencent.connect.common.AssistActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" />
这里是QQ获取用户信息的回调实例:
mShareAPI.doOauthVerify(MainActivity.this, SHARE_MEDIA.QQ, umAuthListener)
UMAuthListener authListener = new UMAuthListener() { /** * @desc 授权开始的回调 * @param platform 平台名称 */ @Override public void onStart(SHARE_MEDIA platform) { } /** * @desc 授权成功的回调 * @param platform 平台名称 * @param action 行为序号,开发者用不上 * @param data 用户资料返回 */ @Override public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) { Toast.makeText(mContext, "成功了", Toast.LENGTH_LONG).show(); } /** * @desc 授权失败的回调 * @param platform 平台名称 * @param action 行为序号,开发者用不上 * @param t 错误原因 */ @Override public void onError(SHARE_MEDIA platform, int action, Throwable t) { Toast.makeText(mContext, "失败:" + t.getMessage(), Toast.LENGTH_LONG).show(); } /** * @desc 授权取消的回调 * @param platform 平台名称 * @param action 行为序号,开发者用不上 */ @Override public void onCancel(SHARE_MEDIA platform, int action) { Toast.makeText(mContext, "取消了", Toast.LENGTH_LONG).show(); } };
这样一个QQ第三方登录就差不多完成了,可能有些步骤给忽略了,大致就这些了还请大家多多指教