- 下載官方SDK
在微信開放平台,下載微信的官方SDK,以及簽名生成工具。
地址:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419319167&token=&lang=zh_CN
2.導入官方SDK
把Android開發工具包里面的libammsdk導入到你的項目中如下圖:
這里要注意的是,應用簽名不是在Eclispe 中查看,而是要用到我們第1步下載的簽名生成工具。首先把簽名生成工具安裝在你的手機上,然后把你需要添加微信第三方登錄功能的應用安裝到你的手機上,最后按照簽名工具的提示,在手機上生成應用的簽名。
如果這一步填的應用包名有錯的話,將會導致你的應用無法調起微信。
3.新建wxapi目錄
在你的項目的包名目錄下新建一個wxapi目錄,應用的包名可以在你的manifest文件里查看。注意,wxapi目錄必須新建在你的包名目錄下,否則微信返回的請求以及響應將會無法回調。
4.新建WXEntryActivity類
在上一步新建的目錄下新建一個WXEntryActivity.java類,繼承Activity,實現IWXAPIEventHandler接口,如下圖:
然后打開manifest,為這個類添加exported屬性,設置為true:
5.注冊到微信
在代碼中,把你的應用注冊到微信。這一步可以在你的APP的第一個Activity中進行,我就是在第一個Activity中的onCreate()方法中注冊的。
/* * 注冊到微信 */ private void regToWX(){ api = WXAPIFactory.createWXAPI(this, APP_ID, true);//此處的APP_ID替換為你在微信開放平台上申請到的APP_ID api.registerApp(APP_ID); }
6.調起微信
注冊完后,就可以調起微信了,通過以下幾行簡單的代碼就可以調起微信了:
/* * 向微信發送授權登陸的請求 */ private void sendAuth(){ final SendAuth.Req req = new SendAuth.Req(); req.scope = "snsapi_userinfo"; req.state = "none"; api.sendReq(req); }
這一步分的代碼也是比較簡單的,你可以選擇在你的登錄界面上,注冊一個Button,點擊Button,就執行上面的代碼,發送授權登錄請求,拉起微信了。
7.獲取token
最后,在WXEntryActivity中,重寫onResp方法,獲取token。注意,新版的微信SDK中,已經code這個屬性改名為token了。但是官方文檔還沒有改過來,我折騰了一個晚上才發現的。token就是官方教程上的code,只是名字不同了而已。獲得token后,就可以利用token來獲得access_token,進行后面的操作。
@Override public void onResp(BaseResp resp) { switch(resp.errCode){ case BaseResp.ErrCode.ERR_OK: SendAuth.Resp newResp = (SendAuth.Resp) resp; String token=newResp.token; break; default: break; }
再強調一遍token就是官方文檔中的code,文檔中的String code=newResp.code;已經不能再用了,因為code已經改名為token,所以應該要用String token=newResp.token。
進行到這一步,微信第三方授權基本上已經完成了,接下來只要利用token來獲取access_token,按照官方文檔獲取想要的信息就可以了。如果還有不清楚地地方,歡迎留言,共同學習,如果有錯誤的地方,也歡迎大家提出來。
