标签:微信授权登陆 修改keystore
这几天开发要用到微信授权的功能,所以就研究了一下。可是微信开放平台接入指南里有几个地方写的不清不楚。在此总结一下,以便需要的人。
很多微信公众平台的应用如果移植到app上的话就需要微信授权登陆了。
1、首先需要注册微信开放平台,然后获取开发者认证。审批通过之后再创建一个移动应用同样还是需要审批。通过之后就可以给这个应用添加微信授权登陆以及相应功能了。这里移动应用审批通过之后会给你两个参数,一个叫AppId,一个叫Secret。这两个参数在后面用的到。
2、在需要微信授权的项目中导入微信的第三方JAR包,这个在微信开放平台接入指南里面说的很清楚,不再啰嗦。
3、注册到微信:
这一步也没什么课解释的,相当于两人要联系的时候先打通了电话,然后开始沟通。这一步在需要和微信通话的界面之前注册了就行。我的是在欢迎界面注册的。
4、开始和微信通话
首先和微信通话之前,要在项目代码中新建一个Activity,并提供相应的回调方法供微信调用。但是这一点在接入指南上写的就不清不楚导致我浪费了好几个小时。一下内容是我在接入指南里复制来的。
a. 在你的包名相应目录下新建一个wxapi目录,并在该wxapi目录下新增一个WXEntryActivity类,该类继承自Activity(例如应用程序的包名为net.sourceforge.simcpux,则新添加的类如下图所示)
并在manifest文件里面加上exported属性,设置为true。
一定要注意上面这句话:在你的包名相应目录下新建一个wxapi目录。说的是在报名相应目录下建一个wxapi目录。也就是是报名目录的子目录,千万不要直接在src下面建个包就完了。(粗心这毛病害死人啊。)
然后再这个包下面建一个类:
public class WXEntryActivity extends Activity implements IWXAPIEventHandler{ private IWXAPI api; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.flash_activity); <span style="color:#3366ff;">api = WXAPIFactory.createWXAPI(this, Property.wxLoginInfo.getAppid(), false); api.handleIntent(getIntent(), this);</span> } @Override public void onReq(BaseReq arg0) { // TODO Auto-generated method stub } @Override public void onResp(BaseResp resp) { Bundle bundle = new Bundle(); switch (resp.errCode) { case BaseResp.ErrCode.ERR_OK: resp.toBundle(bundle); Resp sp = new Resp(bundle); String code = sp.code; //上面的code就是接入指南里要拿到的code break; default: break; } }
}
然后开始和微信通话,
</pre><pre name="code" class="java">{ // send oauth request Final SendAuth.Req req = new SendAuth.Req(); req.scope = "snsapi_userinfo"; req.state = "wechat_sdk_demo_test"; api.sendReq(req); }
请求以下链接获取access_token:
不过在开发的过程中要注意一下debug keystore。就是Window->Preferences->Android->Build里面。
而我们添加的这个keystore 也要符合一些规范所以要改一改。
那就是keystore的密码改为:android
keytool -storepasswd -keystore my.keystore (在cmd里执行的命令)
其中,my.keystore是要修改的证书文件,执行后会提示输入证书的当前密码,和新密码以及重复新密码确认。这一步需要将密码改为android。
alias的名称要改为:androiddebugkey
keytool -changealias -keystore my.keystore -alias my_name -destalias androiddebugkey
这一步中,my_name是证书中当前的alias,-destalias指定的是要修改为的alias,这里按规矩来,改为androiddebugkey!这个命令会先后提示输入keystore的密码和当前alias的密码。
keystore的alias密码也改为:android
keytool -keypasswd -keystore my.keystore -alias androiddebugkey
这一步执行后会提示输入keystore密码,alias密码,然后提示输入新的alias密码,同样,按规矩来,改为android!
这样修改完keystore之后把这个keystore放到上面ADT的custom debug keystore里面。就可以直接调试微信相关的功能了。大概就这几点吧。
标签:微信授权登陆 修改keystore
原文地址:http://blog.csdn.net/qq247890212/article/details/40822481