关于使用微信登录第三方APP的实现(Android版)

使用微信登录APP,免去注册过程,现在已经有很多的类似应用了。集成该功能过程不复杂,但还是有一些地方需要注意的。

开始之前,需要做下面的准备工作。

1、到微信开放平台注册你的APP,并申请开通微信登录的权限。参考这里:

https://open.weixin.qq.com//

2、下载Android SDK和签名查看工具,请参考:

https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419319167&token=&lang=zh_CN/

3、获取到APP的签名,并填写到微信开放平台。

下面开始进入主题:

引入微信登录相关SDK到项目的lib文件夹中,就一个文件:

libammsdk.jar

调用微信,申请用户授权:

//api注册
api = WXAPIFactory.createWXAPI(this, "APP_ID", true);
api.registerApp("APP_ID");

SendAuth.Req req = new SendAuth.Req();

//授权读取用户信息
req.scope = "snsapi_userinfo";

//自定义信息
req.state = "wechat_sdk_demo_test";

//向微信发送请求
api.sendReq(req);

将APP_ID替换成你在微信开放平台申请到的,上面的代码就可以调起微信了。

授权成功后,微信会返回一个code,下面介绍如何接收微信回传的信息。

在你的包名相应目录下新建一个wxapi目录,并在该wxapi目录下新增一个WXEntryActivity.java文件,输入类似下面的代码:

package 你的包名.wxapi;

public class WXEntryActivity extends Activity implements IWXAPIEventHandler{

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

		//注册API
    	api = WXAPIFactory.createWXAPI(this, "APP_ID");
        api.handleIntent(getIntent(), this);
    }

	@Override
	public void onResp(BaseResp resp) {

		if(resp instanceof SendAuth.Resp){
			SendAuth.Resp newResp = (SendAuth.Resp) resp;

			//获取微信传回的code
			String code = newResp.code;
		}

	}

}

在AndroidManifest.xml中加入下面的代码:

<activity android:exported="true" android:launchMode="singleTop" android:name=".wxapi.WXEntryActivity" android:theme="@android:style/Theme.NoDisplay" />

修复WXEntryActivity中的错误,在onResp方法中获取到code,然后通过下面的接口获取到token和openid:

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

得到下面的数据:

{
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE",
"unionid":"o6_bmasdasdsad6_2sgVt7hMZOPfL"
}

openid可以作为用户的唯一标识,将openid保存下来,就可以实现登录状态的检查了。

如果需要获取用户的信息,例如昵称,头像,可以使用下面的接口:

https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID

得到的数据为:

{
"openid":"OPENID",
"nickname":"NICKNAME",
"sex":1,
"province":"PROVINCE",
"city":"CITY",
"country":"COUNTRY",
"headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0",
"privilege":[
"PRIVILEGE1",
"PRIVILEGE2"
],
"unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"

}

更多的接口使用,请参考:

https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317853&lang=zh_CN

可能的问题

1、无法调起微信。

可能的原因是签名错误,请检查签名。

2、无法接受到微信回传的信息

可能的原因是没有把WXEntryActivity加入到AndroidManifest.xml中。

时间: 2024-10-12 20:16:12

关于使用微信登录第三方APP的实现(Android版)的相关文章

全网独家V25.6版H5游戏 接龙 扫雷 多雷 禁抢 微信登录封装APP赢率智能控制

全网独家V25.6A版H5游戏.牛牛 .接龙. 扫雷. 多雷禁抢. PC.蛋蛋. 微信登录封装APP.赢率智能控制 2018全新源码内核升级打造.更换域名后台简单配置便可,不需要重启和懂技术. 声明:所有代码仅限自我娱乐和学习,禁止用于非法应用,责任自负,本站无关联责任. 我们从不泄露买家隐私,从不监控买家数据和资金充值.流动,更不会将这些数据用于商业用途和推广忽悠.一切为了您的系统安全,防止不必要的风险. 2018-04-16升级日志 1.内置自助提现接口(需要根据要求申请接口秘钥) 2.完善

APP微信登录---第三方登录

(一)引入maven配置 <dependency> <groupId>com.github.liyiorg</groupId> <artifactId>weixin-popular</artifactId> <version>2.8.5</version> </dependency> (二)编写controller 前端传递过来一个code字段,popular框架自主完成以下的操作 @Controller @R

仿微信即时通讯APP源码(Android,IOS)

小圈子介绍    分享多样化:除了文字和多图分享,V4全面支持视频分享,还有移动互联必备的地理位置玩法,让分享更加有趣.    功能更丰富:全新功能等你发现!新增礼品中心.任务中心.找人.二维码--支持扩展,方便快捷.    像微信一样聊天:加强了聊天的扩展性,增加了地理位置.名片.语音.图片,同时还有更加期待的群聊功能.    更有趣:全新的任务中心.礼物商城.好玩的签到等游戏化元素,让你的社区更有趣.    想体验更多:附近的人.充值中心.分享到第三方.扫二维码......本产品源代码为其他

iOS微信实现第三方登录的方法

这篇文章主要介绍了iOS微信第三方登录实现的全过程,一步一步告诉大家iOS微信实现第三方登录的方法,感兴趣的小伙伴们可以参考一下 一.接入微信第三方登录准备工作.移动应用微信登录是基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统.在进行微信OAuth2.0授权登录接入之前,在微信开放平台注册开发者帐号,并拥有一个已审核通过的移动应用,并获得相应的AppID和AppSecret,申请微信登录且通过审核后,可开始接入流程.(注意)1.下载iOS微信SDK.下载地址 2.将SDK放到

第三方App接入微信登录 解读(转)

转自http://blog.csdn.net/luoyan973387349/article/details/49815225 , 更多详细资料请参考原文 最近在做一个微信登录功能,发现腾讯的API文档写的实在是让人摸不着头脑,也没有搜到很详细的能让人参考的文章,借此把自己的一点儿使用心得与大家分享,欢迎指正其中的不足之处,谢谢! 准备工作 1.在微信开放平台https://open.weixin.qq.com/注册成为开发者. 2.在“管理中心”中创建一个移动应用,需“应用名称.简介.及28*

第三方App接入微信登录

微信登录接入 微信登录遵循协议Aouth2.0中的授权码模式 我们来看一下Aouth2.0中的授权码模式是怎么定义的: 授权码模式(authorization code)是功能最完整.流程最严密的授权模式.它的特点就是通过客户端的后台服务器,与"服务提供商"的认证服务器进行互动. 它的步骤如下: (A)用户访问客户端,后者将前者导向认证服务器. (B)用户选择是否给予客户端授权. (C)假设用户给予授权,认证服务器将用户导向客户端事先指定的"重定向URI"(redi

微信网页第三方登录原理

微信开放平台和公众平台的区别 1.公众平台面向的时普通的用户,比如自媒体和媒体,企业官方微信公众账号运营人员使用,当然你所在的团队或者公司有实力去开发一些内容,也可以调用公众平台里面的接口,比如自定义菜单,自动回复,查询功能.目前大多数微信通过认证之后,都在做这个事情. mp.weixin.qq.com 2.开放平台面向的开发者和第三方独立软件开发商.我觉得开发平台最大的开放就是微信登录.当年腾讯没有花大力气去做统一登录这个事情,导致目前各个网站都要弄一套登录机制.好在他们现在认清了局势.开发者

安卓第三方登录之微信登录(图文详解)

安卓第三方登录之微信登录  一.成为开发者 到微信开放平台管理中心(https://open.weixin.qq.com/),认证成为开发者 二.创建应用 “创建移动应用”   填写基本的应用信息 填写平台信息 可参照后面的步准备好要填写的信息. 应用包的名称: keystore 第一步:用 Android Studio 生成 keystore 第二步:Create New 第三步:填写相关信息,里面内容什么含义自行Google 创建key的文件夹,也可保存到其它地方 创建新的签名,填写组织的相

微信授权登陆接入第三方App(步骤总结)Android。

这几天开发要用到微信授权的功能,所以就研究了一下.可是微信开放平台接入指南里有几个地方写的不清不楚.在此总结一下,以便需要的人. 很多微信公众平台的应用如果移植到app上的话就需要微信授权登陆了. 目前移动应用上微信登录只提供原生的登录方式,需要用户安装微信客户端才能配合使用.也就是如果第三方应用需要微信授权登陆的话就必须在本机上安装了微信.而后续授权登陆或调用接口之类的相当于app和微信两个应用之间通话. 1.首先需要注册微信开放平台,然后获取开发者认证.审批通过之后再创建一个移动应用同样还是