文章标题
2016-06-13 23:36
459 查看
微信登录
第一步到微信开发者平台注册,导入jar包,清单文件注册相关东西,这一步大家可以看着官方文档.完成上面所说之后,现在开始说微信授权登录几个步骤
1:在你的主入口或者触发微信登录的点击事件的Activity注册:
如下代码:
public class Activity extends Activity implements View
.OnClickListener {
private LinearLayout wx_login; private IWXAPI api; private static final String APP_ID = "开发者平台上注册的APPID"; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_2_setting); initView(); // 微信授权登录 //通过微信工厂,获取实例 api = WXAPIFactory.createWXAPI(this, APP_ID, true); //将应用appid注册到微信 api.registerApp(APP_ID); } //初始化view private void initView() { wx_login = (LinearLayout) findViewById(R.id.wx_login); wx_login.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.wx_login: //微信登录授权 SendAuth.Req req = new SendAuth.Req(); req.scope = "snsapi_userinfo"; api.sendReq(req); break; } }
}
2:创建一个包和微信回调活动类,这里要注意包名带有wxapi和类名(WXEntryActivity )必须是这个名字,不能修改,切记!!
如下操作:
package com.wxapi;
/**
* 微信授权登录
*/
public class WXEntryActivity extends WechatHandlerActivity implements IWXAPIEventHandler,
OnResponseListener {
private IWXAPI api;
private static final String APP_ID = “开发者平台上注册的APPID”;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_wxlogin2); api = WXAPIFactory.createWXAPI(this, APP_ID, false); //开启微信登录页面 api.handleIntent(getIntent(), this); } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); setIntent(intent); api.handleIntent(intent, this); } @Override public void onReq(BaseReq req) { Toast.makeText(this, "失败", Toast.LENGTH_LONG).show(); finish(); } //微信回调结果 @Override public void onResp(BaseResp resp) { if (resp.errCode == BaseResp.ErrCode.ERR_OK) { String code = ((SendAuth.Resp) resp).code;//需要转换一下才可以拿到code,这里有个主意的地方,尽量不要用Intent把code传出去,用其他方法传出去即可,当然我只是友情提醒,你可以自己试试
/*
通过code获取access_token
获取上一步中的code后,调用以下接口获取access_token,官方指出用Get方式请求。
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
请求参数说明:
appid:应用唯一标识,在微信开放平台提交应用审核通过后获得。
secret:应用密钥AppSecret,在微信开放平台提交应用审核通过后获得。
code:填写第一步获取的code参数。
grant_type:填authorization_code。
返回说明
正确的返回:
{
“access_token”:”ACCESS_TOKEN”,
“expires_in”:7200,
“refresh_token”:”REFRESH_TOKEN”,
“openid”:”OPENID”,
“scope”:”SCOPE”
}
*/
}
}
基本就这样了,没什么难度,写的不好大家别见怪啊
相关文章推荐
- 社交巨头三国杀:微信、WhatsApp、Line到底有啥区别?
- 微信悄悄升级群聊功能:个人微信营销号的福音
- 突击部队拼多多
- 我是运营,我没有假期
- 如何做到日消息量100万的微信公众号?
- 论微信取消推送功能的可能性(原创)
- 开发人员、程序员与计算机科学家三者之间的区别
- 微信的成功,靠的是QQ导流吗?
- 「Linux 中国」2018 微信文章排行榜
- 马化腾亲自“站台” 企业微信和个人微信互通能带来什么?
- 一个微信群的兴亡
- 微信服务号推送模板消息接口
- C#微信公众号与订阅号接口开发示例代码
- 我也有微信朋友圈了 Android实现
- PHP限制页面只能在微信自带浏览器访问的代码
- JavaScript判断微信浏览器实例代码