关注微信号,发送demo获取github上的demo吧!
现在利用第三方平台登录APP已经是很普通的方式,现在记一下利用微信登录APP的过程。
上面的图片是描述使用微信登录的过程:
1、用户点击第三方开发的APP微信登录按键,
2、APP使用申请得的APPID与微信联系
3、微信平台会向APP发送一个code
4、APP利用获得的code和APPID、secrect向微信平台获取access_token、openid
5、APP使用获取得的access_token、openid获取用户的基本信息,如昵称、性别、国家等。
具体做法
第一步:获取APPID和secrect
在微信开发平台创建应用,填写APP的包名和签名(签名不是SHA1,要使用第三方工具安装到手机输入APP的包名获取),审核通过后会有APPID和secrect.
第二步:环境集成
从微信官网下载SDK集成到项目libs中,并在包名路径下创建名为xwapi的文件夹
第三步:在wxapi内创建WXEntryActivity
在wxapi内创建WXEntryActivity,并implements IWXAPIEventHandler,
在manifest中加入android:exported="true",如
<activity
android:name=".wxapi.WXEntryActivity"
android:exported="true"></activity>
第四步:在有微信登录的Activity加入接口信息
在有微信登录的Activity加入接口信息,一般都是在weclome界面或login界面,加入。如:
public class MainActivity extends AppCompatActivity {
public static IWXAPI api;
private String WXAPP_ID="";//申请到的APPID
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
api= WXAPIFactory.createWXAPI(this,WXAPP_ID,true);
final SendAuth.Req req = new SendAuth.Req();
req.scope="snsapi_userinfo";
req.state="none";
api.sendReq(req);
//
}
}
第五步:在WXEntryActivity实现对接功能
第四步与微信通信之后,会弹出一个授权窗口,提醒用户是否使用微信登录APP,点击确定之后微信会回调WXEntryActivity中的onResp方法,把code传为BaseResp传过来,我们就可以用这个code一步步获取accesstoken,再获取用户信息。如:
public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
private static final int TIMELINE_SUPPORTED_VERSION = 0x21020001;