授权登陆接⼊第三⽅App(步骤总结)
这⼏天开发要⽤到授权的功能,所以就研究了⼀下。可是开放平台接⼊指南⾥有⼏个地⽅写的不清不楚。在此总结⼀下,以便需要的⼈。
很多公众平台的应⽤如果移植到app上的话就需要授权登陆了。
⽬前移动应⽤上登录只提供原⽣的登录⽅式,需要⽤户安装客户端才能配合使⽤。也就是如果第三⽅应⽤需要授权登陆的话就必须在本机上安装了。⽽后
续授权登陆或调⽤接⼝之类的相当于app和两个应⽤之间通话。
1、⾸先需要注册开放平台,然后获取开发者认证。审批通过之后再创建⼀个移动应⽤同样还是需要审批。通过之后就可以给这个应⽤添加授权登陆以及相应功能了。这⾥移动应⽤审批通过之后会给你两个参数,⼀个叫AppId,⼀个叫Secret。这两个参数在后⾯补充:写这篇⽂章有⼀段时间了。在这补充下⼤家容易出问题的⼏个地⽅。
1)⼤家在创建移动应⽤的时候注意的地⽅。
上⾯图⽚是申请移动应⽤时候的第⼆步,令我想不明⽩的是很多开发者还不知道应⽤包名和应⽤签名指的是什么。。。。。。。。
包名是你manifest⽂件⾥⾯顶层的那个package啊。
就是这个东西啊,这个东西啊少年。
2)应⽤签名。好吧我真不想啰嗦了。应⽤签名就是你同过ks⽂件得到的那个应⽤签名。如果你不知道如何获得这个签名。请按下⾯步骤⾛:
1,先把你的应⽤程序打包安装在你的⼿机上。
2,下载官⽹上提供的签名⽣成⼯具并安装在⼿机上。下⾯这个地⽅下载:
3、打开签名⽣成⼯具输⼊你的app的包名就⽣成你的应⽤签名了。
补充完毕。。。(对于上⾯这点补充我真不想多回答了。PS:我的昵称留下了QQ我很⽆辜啊。。。⼤家有问题上班时间别问好吗,哥⼼软不忍⼼拒绝啊,尤其有妹⼦问的时候啊。。。坟蛋)
2、在需要授权的项⽬中导⼊的第三⽅JAR包,这个在⾥⾯说的很清楚,不再啰嗦。
3、注册到:
这⼀步也没什么课解释的,相当于两⼈要联系的时候先打通了电话,然后开始沟通。这⼀步在需要和微
信通话的界⾯之前注册了就⾏。我的是在欢迎界⾯注册的。
4、开始和通话
⾸先和通话之前,要在项⽬代码中新建⼀个Activity,并提供相应的回调⽅法供调⽤。但是这⼀点在接⼊指南上写的就不清不楚导致我浪费了好⼏个⼩时。⼀下内容是我在接⼊指南⾥复制来的。
a. 在你的包名相应⽬录下新建⼀个wxapi⽬录,并在该wxapi⽬录下新增⼀个WXEntryActivity类,该类继承⾃Activity(例如应⽤程序的包名为net.sourceforge.simcpux,
则新添加的类如下图所⽰)
并在manifest⽂件⾥⾯加上exported属性,设置为true。
⼀定要注意上⾯这句话:在你的包名相应⽬录下新建⼀个wxapi⽬录。说的是在包名相应⽬录下建⼀个wxapi⽬录。也就是是包名⽬录的⼦⽬录,千万不要直接在src下⾯建个包就完了。(粗⼼这⽑病害死然后再这个包下⾯建⼀个类:
copy
<pre name==> WXEntryActivity Activity IWXAPIEventHandler{
01.
02. IWXAPI api;
03.
04. onCreate(Bundle savedInstanceState) {
05.
06. .onCreate(savedInstanceState);
07. setContentView(R.layout.flash_activity);
08. , Appid(), );
09. api.handleIntent(getIntent(), );</span>
10.
11. onReq(BaseReq arg0) {
12.
13.
14.
15. onResp(BaseResp resp) {
16. Bundle();
17. (Code) {
18. BaseResp.ErrCode.ERR_OK:
19.
20. // Bundle(bundle); // Resp sp = new Resp(bundle); // String code = sp.code;<span > // 或者
21. ;
22. :
23. ;
24. }
25. }
注意:上⾯是获取code。现在最新的官⽅jar包好像不⽀持获得code了。直接就能得到token,省略了获取code 这⼀
步。所以⽅法不变,⼤家取的时候直接ken就⾏了。不⽤再去取code了。但是,但是,这样直接拿到token了好
像按照官⽅⽂档上的⽅法就不能获得openid了。我也没尝试有什么新的⽅法,反正是jar包更新了但是⽂档还没更新,
⼤家弄不成功的话可以先⽤旧的jar和上⾯获取code的⽅法。点击
这是那个WXEntityAcitivity的部分代码。结合接⼊指南,⼤家应该都看的懂。access是什么意思啊了
然后开始和通话,
copy
</pre><pre name==>{
01.
02. SendAuth.Req();
03. req.scope = ;
04. ;
05. api.sendReq(req);
06. }
这⼀步就是和要code。执⾏了这⼀段代码之后。会调⽤刚才WXEntityActivity类⾥⾯的onResp()⽅法。并且把code返回来了。见上⾯那⼀段代码。获取到code之后就可以通过code获取access_token了。
请求以下链接获取access_token:
api.weixin.qq/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
这步和通信获得access_token就是普通的访问链接。 ⽤httpClient就⾏了,⽽不是接⼊指南⾥说的那个和通信的⽅法onReq().然后还是这样的⽅式通过access_token.就可以调⽤接⼝获得⽤户基本信息了。具体返回参数什么的接⼊指南⾥⾯说的很清楚。⾄此授权基本是成功了。
不过在开发的过程中要注意⼀下debug keystore。就是Window->Preferences->->Build⾥⾯。
这⾥,我们要添加Custom debug keystore。上⾯的那个debug keystore不会和通信。
⽽我们添加的这个keystore 也要符合⼀些规范所以要改⼀改。
那就是keystore的密码改为:android
其中,my.keystore是要修改的证书⽂件,执⾏后会提⽰输⼊证书的当前密码,和新密码以及重复新密码确认。这⼀步需要将密码改为。
alias的名称要改为:androiddebugkey
android
这⼀步中,my_name是证书中当前的alias,-destalias指定的是要修改为的alias,这⾥按规矩来,改为debugkey!这个命令会先后提⽰输⼊keystore的密码和当前alias的密码。keystore的alias密码也改为:android
keytool -keypasswd -keystore my.keystore -alias androiddebugkey
这⼀步执⾏后会提⽰输⼊keystore密码,alias密码,然后提⽰输⼊新的alias密码,同样,按规矩来,改为android!
这样修改完keystore之后把这个keystore放到上⾯ADT的custom debug keystore⾥⾯。就可以直接调试相关的功能了。
⼤概就这⼏点吧。
转⾃:blog.csdn/qq247890212/article/details/40822481 博主QQ:247890212
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论