使用友盟+实现第三方登录(QQ、微信、微博)
最近项目中有使用到友盟第三方登录:下面我就把使用友盟第三方登录的步骤分享给大家:
1.第一步:去友盟+官网创建应用,申请获取到appkey。有账号的话直接登录创建即可,无账号注册一个创建应用。
官网链接:https://www.umeng.com/
2.第二步:确定可以使用第三方登录的平台。(我这里实现QQ、微信和新浪微博)。
3.第三步:去腾讯开放平台申请APP ID 和 APP KEY。步骤和第一步一样的,创建应用。
官网链接:http://open.qq.com/
4.第四步:去微信开放平台申请AppID 和 AppSecret。(他这里有个坑,就是一定要是管理员身份的微信扫描二维码才能生成)。
官网链接:https://open.weixin.qq.com/
5.第五步:去新浪微博开放平台申请App Key 和 App Secret在高级信息中设置回调url。
官网链接:http://open.weibo.com/
这些步骤全部完成之后,开始初始化友盟sdk的步骤了。
6.下载友盟社会化分享的sdk:把jar包全部导入工程中去。
下载链接:http://mobile.umeng.com/custom_sdk
点击了链接会出现如下所示:点击一键下载。
下载完成解压后出现如下所示:
双击中间的share文件夹:
双击友盟集成工具:
点击OK,弹出框点击是:
会发现多出来一个文件夹:
如上所示把lib中的jar包全部导入项目中去
7.在app中的build.gradle中添加依赖:
compile 'com.umeng.sdk:common:latest.integration'
还需要加入:
allprojects {repositories {mavenCentral()}}
(混淆规则)
-keep class com.umeng.commonsdk.** {*;}
8.在工程的Application中的onCreate()方法中加入以下代码:
UMConfigure.init(this, "友盟+的appkey", "Shutang", UMConfigure.DEVICE_TYPE_PHONE, "");//最后一个参数为推送时需要用到的UMShareAPI.get(this);Config.DEBUG = true;QueuedWork.isUseThreadPool = false;//三方获取用户资料时是否每次都要进行授权UMShareConfig config = new UMShareConfig();config.isNeedAuthOnGetUserInfo(true);UMShareAPI.get(this).setShareConfig(config);PlatformConfig.setWeixin("微信的AppID", "微信的AppSecret");PlatformConfig.setQQZone("腾讯的APP ID", "腾讯的APP KEY");PlatformConfig.setSinaWeibo("新浪微博的App Key", "新浪微博的App Secret", "新浪微博的回调url");
9.在项目的清单文件中添加权限:
<!--友盟的权限 --><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.INTERNET" /><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
10.在包名的文件夹直属目录下创建一个wxapi包,然后在包中创建一个:
例子:
package com.stinfo.app.wxapi;import com.umeng.socialize.weixin.view.WXCallbackActivity;/*** Created by DFF on 2018/3/31.*/public class WXEntryActivity extends WXCallbackActivity{
}
11.在清单文件中注册回调的Activity:
<!-- 微信 --><activityandroid:name=".wxapi.WXEntryActivity"android:configChanges="keyboardHidden|orientation|screenSize"android:exported="true"android:screenOrientation="portrait"android:theme="@android:style/Theme.Translucent.NoTitleBar" /><!--新浪--><activityandroid:name="com.umeng.socialize.media.WBShareCallBackActivity"android:configChanges="keyboardHidden|orientation"android:theme="@android:style/Theme.Translucent.NoTitleBar"android:exported="false"android:launchMode="singleTask"android:screenOrientation="portrait" ></activity><activityandroid:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"android:launchMode="singleTask"android:name="com.sina.weibo.sdk.share.WbShareTransActivity"><intent-filter><action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" /><category android:name="android.intent.category.DEFAULT" /></intent-filter></activity><!-- qq精简版 --><activityandroid: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="tencentappid" /></intent-filter></activity><activityandroid:name="com.tencent.connect.common.AssistActivity"android:configChanges="orientation|keyboardHidden|screenSize"android:screenOrientation="portrait"android:theme="@android:style/Theme.Translucent.NoTitleBar" /><!-- 分享编辑页 --><activityandroid:name="com.umeng.socialize.editorpage.ShareActivity"android:excludeFromRecents="true"android:theme="@android:style/Theme.Translucent.NoTitleBar" /><activity android:name=".StartActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity>
12.在登录界面,也就是去获取授权的界面中重写onActivityResult()方法:
@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
}
以上初始化就基本上完成了:
现在是使用阶段:
此处是我登录界面的点击事件:
case R.id.other_weibo_login://新浪微博登录UMSharePlatform.loginThirdParty(this, SHARE_MEDIA.SINA, new UMSharePlatform.LoginSuccessCallback() {@Overridepublic void getLoginData(String uid) {mLoginPresenter.thirdPartyLoad(uid, "3");}});break;case R.id.other_qq_login://QQ登录UMSharePlatform.loginThirdParty(this, SHARE_MEDIA.QQ, new UMSharePlatform.LoginSuccessCallback() {@Overridepublic void getLoginData(String uid) {mLoginPresenter.thirdPartyLoad(uid, "2");}});break;case R.id.other_weixin_login://微信登录UMSharePlatform.loginThirdParty(this, SHARE_MEDIA.WEIXIN, new UMSharePlatform.LoginSuccessCallback() {@Overridepublic void getLoginData(String uid) {mLoginPresenter.thirdPartyLoad(uid, "1");}});break;
这是我封装得回调逻辑:
public class UMSharePlatform {/*** 第三方登录** @param activity* @param media* @param callback*/public static void loginThirdParty(Activity activity, SHARE_MEDIA media, final LoginSuccessCallback callback) {UMShareAPI.get(activity).getPlatformInfo(activity, media, new UMAuthListener() {@Overridepublic void onStart(SHARE_MEDIA share_media) {Log.e("lee", "onStart授权开始: ");}@Overridepublic void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {callback.getLoginData(map.get("uid"));//在该回调的map中可以拿到第三方返回的好多信息:比如昵称,头像,性别等等,由于我这里只需要uid所以就只取了uid。Log.e("lee", "onComplete授权成功: ");}@Overridepublic void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {Log.e("lee", "onError授权异常: ");}@Overridepublic void onCancel(SHARE_MEDIA share_media, int i) {Log.e("lee", "onCancel授权取消: ");}});}/*** 回调接口*/public interface LoginSuccessCallback {/*** @param uid 第三方平台返回的唯一标识*/void getLoginData(String uid);}
}
mLoginPresenter.thirdPartyLoad(uid, "1");这些代码就是调用我们自己的服务器的登录接口。
以上就完成了友盟+的第三方登录。
原文转载自:https://blog.csdn.net/qq77485042/article/details/79792489
我自己做的项目流程与该文章所述流程大同小异,只是有些细节不一样,如有问题可以留言讨论。
使用友盟+实现第三方登录(QQ、微信、微博)相关推荐
- 友盟集成第三方登录--微信、QQ实现
友盟集成了第三方登录,本给我们带来便利,但是文档只描述了集成方式,出现问题,发现还得自己各种baidu,这里总结自己遇到的一些坑,以防下次再踩. 友盟集成第三方微信登录: 友盟集成方案参考:http: ...
- android使用友盟实现第三方登录、分享以及微信回调无反应问题解决办法
这里介绍微信和新浪登录.微信登录和新浪登录都需要申请第三方账号.可以参考官方文档http://dev.umeng.com/social/android/operation#2还是很清晰的. 新浪微博开 ...
- iOS:友盟SDK第三方登录 分享及友盟统计的使用
本文转载至 http://www.it165.net/pro/html/201503/37101.html Tag标签:第三方 view sourceprint? 01.#import " ...
- iOS 第三方登录(QQ 微信 新浪微博)
一.QQ登录 1.登录腾讯开放平台,创建一个应用,获取APP_KEY和APP_ID 2.下载对应的SDK 3.下载 iOS SDK环境搭建 1.导入SDK,配置工程 1.下载SDK到本地后,将SDK拖 ...
- 集成友盟第三方实现QQ微信登录遇到的坑
最近项目集成友盟第三方实现QQ微信登录,在集成实现过程中遇到了一些问题,也对这些问题提出一些自己的解决办法: 集成的过程不就提了,直接上问题: 一.微信登录提示"授权失败,请查看log&qu ...
- CAS单点登录-第三方登录[QQ、微信、CSDN、GitHub](十四)
CAS单点登录-第三方登录[QQ.微信.CSDN.GitHub](十四) 注: 目前博文使用cas版本为5.1.5,由于5.2.x与5.1.x构建模式有差异,所以部分配置会有些偏差. 本章内容 简答介 ...
- iOS开发集成友盟,腾讯QQ登录授权失败
在项目中集成友盟,腾讯QQ登录,登录授权失败110406. 原因: app在测试阶段(未上线),授权的QQ账号和腾讯开放平台的QQ账号不是同一账号. 解决办法: 在腾讯开放平台中,应用接入--应用管理 ...
- 安卓三方登录趟坑,QQ,微信,微博,Twitter,Facebook,Instagram
前言 最近给app加入三方登录,由于比较多,所以就用的友盟统一登录,会比一个一个配置方便点 正文 先说QQ,微信,微博: 国内QQ,微信,微博三方登录其实还行,并没有太多坑,文档也挺完善的. 但是需要 ...
- Oauth2.0 QQ微信微博实现第三方登陆
一.写在前面 目前对于大多数的App或Web网站都支持有第三方登陆这个功能,用户可使用 QQ/ 微信/ 微博 帐号快速登录你的网站,降低注册门槛,为你的网站带来海量新用户.最近在新项目上刚好用到了,在 ...
- Spring Boot集成第三方登录之微信登录
Spring Boot集成第三方登录之微信登录 准备工作 注册 创建网站应用 网站应用开发指南 授权流程 请求CODE 获取access_token 使用access_token调用接口 获取用户个人 ...
最新文章
- mendix归还界面如何只显示登录人自己借阅的书籍,而不显示全部人借阅的书籍
- img下出现几像素空白的问题
- md5模块(Python内置模块)和hashlib模块
- 大数据量下的sort
- 最新数据显示,全国有580万人被限制乘坐高铁,大家怎么看?
- mysql xtrabackup 遭遇严重bug
- python模块下载过程_常用的python模块及安装方法
- 使用 Adobe AIR 管理 WordPress 评论
- 条件测试 linux,Linux的条件测试
- 实习成长之路:MySQL二 : 一条SQL更新语句是如何执行的?
- SurfaceView浅析
- excel如何隔行填充颜色
- 麒麟操作系统安装达梦数据库实战
- 银行业务中台和阿里中台的异曲同工之妙
- 小森生活服务器维护还要多久,小森生活暮夕深林材料刷新时间是多久_暮夕深林材料刷新时间位置汇总_3DM手游...
- 明星代言的商品一般都不便宜,为何还那么受青睐?
- Thread详解一(interrupt)
- 【QT实现TCP和UDP协议通信(一)】
- 如何使用爬虫分析Python岗位招聘情况
- 能上QQ但打不开网页
热门文章
- 苹果公司向中国征收30%苹果税
- elasticsearch 学习之 搭建简单的elasticsearch多节点服务器
- 巨杉数据库登榜互联网周刊“2022中国软件150强”及“2022大数据服务TOP150”
- python爬取网易云音乐评论并进行情感分析_使用python3爬取网易云音乐的评论
- android 设置组件背景图片,Android TextView背景颜色与背景图片设置
- ps快捷键及相关基础知识总结(持续ing)
- 百词斩不复习_百词斩怎么复习,学好英语的前提条件是?
- 白嫖亚马逊AWS服务器
- DNS服务器的安装与配置
- windows下的diskpart指令修复U盘分区