超简单微信登录(微信SDK接入、友盟SDK接入)

前提:微信授权登录接入需要先到微信开放平台申请好应用的APPID。

接入的两种方式

  • 微信SDK接入:使用微信官方SDK接入,需要分“获取code票据”和“获取access_token”两步来获得授权关系接口的调用凭证
  • 友盟SDK接入:友盟已集成各种接口接入,直接一个方法搞定

ps:

  1. 如果App中只有微信第三方,推荐是使用微信SDK接入,简单,易粘贴。
  2. 如果有QQ、微信、支付宝等等一种以上的第三方推荐使用友盟SDK接入。

通俗易懂的讲就是友盟包含着很多三方,只需要申请一个友盟账号即可。微信只能微信登录,其它的你还得申请其它平台的账号。

微信SDK接入

这篇文章记录的是微信SDK接入实现微信登录并获取用户信息用SharedPreferences把信息保存在本地的代码。

我复制的是这两位大佬的博客。在此附上链接。Teck12LMYU阿雨
我只是把这两位大佬写的结合了一下。

第一步:build.gradle 文件中,添加如下依赖

api 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'

第二步:清单文件中添加微信登录所需的权限

<uses-permission android:name="android.permission.INTERNET" /> 
<!-- for mta statistics, not necessary-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

第三步:APP_ID最好是存放在我们的变量类是方便我们调用,做微信其他功能时也方便使用

public class ApiConstant{
   
    public static final String APP_ID = "微信开放平台申请好应用的APPID";
    public static final String APP_SECRET = "微信开放平台申请好应用的APPSECRET";
    public static IWXAPI wx_api;
}

第四步:初始化操作,一般放在Application里

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

    // 通过WXAPIFactory工厂,获取IWXAPI的实例
    ApiConstant.wx_api = WXAPIFactory.createWXAPI(getApplicationContext(), Constants.APP_ID, true);
    // 将应用的appId注册到微信
    ApiConstant.wx_api.registerApp(Constants.APP_ID);
}

第五步:接下来到我们点击登录了,当我们登录时我们的我们的第三方app端会带着我们的APP_ID、包名、签名信息去到微信客户端,微信客户端会带着这些信息去到微信服务器校验注册时的信息,校验成功通知微信客户端唤起微信授权页。

//发送请求唤起收起授权页
public void wxLogin() {
   
        if (!ApiConstant.wx_api.isWXAppInstalled()) {
   
            ToastUtils.show( "您的设备未安装微信客户端");
        } else {
   
            final SendAuth.Req req = new SendAuth.Req();
            //应用授权作用域,如获取用户个人信息则填写 snsapi_userinfo
            req.scope = "snsapi_userinfo";
            //用于保持请求和回调的状态,授权请求后原样带回给第三方。
            //该参数可用于防止 csrf 攻击(跨站请求伪造攻击),
            //建议第三方带上该参数,可设置为简单的随机数加 session 进行校验
            req.state = "wechat_sdk_demo_test";
            ApiConstant.wx_api.sendReq(req);
        }
    }

第六步:我们要创建微信回调类接收登录授权页登陆状态,在你的包下创建包名为:wxapi、类名为:WXEntryActivity,!包名类名必须相同,实现IWXAPIEventHandle从写onReq、onResp方法,在onResp方法中处理回调信息

public class WXEntryActivity extends Activity implements IWXAPIEventHandler{
   
    @Override
    protected void onCreate(Bundle savedInstanceState) {
   
        super.onCreate(savedInstanceState);
    }
    @Override
    
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值