android 微信api登錄的接入
關(guān)于android有好多知識(shí)點(diǎn)楼誓,我只是一個(gè)新人,記錄下自己寫(xiě)app過(guò)程中遇到的一些坑或者采用的技術(shù)名挥,方便自己查閱疟羹,也方便后來(lái)者能少走點(diǎn)彎路,就是極好的了禀倔。
android 端接入微信api榄融,第一步最重要了,就是去微信開(kāi)發(fā)者平臺(tái)申請(qǐng)一個(gè)APP_ID救湖,這個(gè)相當(dāng)于是微信認(rèn)識(shí)你這個(gè)app的一個(gè)媒介愧杯,一個(gè)鑰匙吧。有了這個(gè)東西鞋既,然后就需要我們?cè)谖覀兊拇a中去接入api了民效。分為五步。
第一步:Module:app的build.gradle里面添加dependencies涛救。compile'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'畏邢;這樣微信的接口的包我們就集成到我們項(xiàng)目中了,等AS自動(dòng)編譯好之后检吆,我們下一步就可以使用了舒萎。
第二步:在我們的登錄界面的activity中,監(jiān)聽(tīng)你自己定義的登錄微信的按鈕事件蹭沛,最好先將你得到的微信app_id放到一個(gè)全局的文件中臂寝,這樣方便在各個(gè)地方使用它章鲤。譬如我們也要做微信支付不是?
在你的登錄activity中調(diào)用 public static IWXAPI api咆贬;在onCreate函數(shù)中使用這兩句api= WXAPIFactory.createWXAPI(this,Config.APP_ID_WX,false);?api.registerApp(Config.APP_ID_WX); 聲明和注冊(cè)api败徊;登錄調(diào)用一個(gè)函數(shù)wxLogin就好,這個(gè)可以自己寫(xiě)
第三步:在你的app包名下新建文件夾wxapi掏缎,這個(gè)的名字不可更改皱蹦,java文件的名字也不可更改。
當(dāng)?type ==RETURN_MSG_TYPE_LOGIN 時(shí)眷蜈,證明微信客戶(hù)端返回給我們的結(jié)果是正確的沪哺,此時(shí)我們需要訪問(wèn)自己的服務(wù)器去獲取我們一些想要拿到的信息。
第四步:這步的內(nèi)容是需要自己在自己的服務(wù)器去搭建的酌儒。比如我app端給服務(wù)器發(fā)送一個(gè)post請(qǐng)求辜妓,我服務(wù)器端使用的是node.js,這步的做法是為了獲取token信息和用戶(hù)user_info忌怎。
服務(wù)器的代碼我就不詳細(xì)講了籍滴,因?yàn)槊總€(gè)人每個(gè)公司架設(shè)的服務(wù)器都不一樣,所以只是講講功能邏輯榴啸,主要是通過(guò)在app端微信客戶(hù)端返回給我們的code來(lái)訪問(wèn)我們自己服務(wù)器孽惰,判斷新老用戶(hù),新用戶(hù)的話需要將用戶(hù)信息保存在我們數(shù)據(jù)庫(kù)插掂,并存入cookie和session灰瞻,存入cookie時(shí)候需要加密腥例,不然用戶(hù)信息回到app端的時(shí)候容易發(fā)生被竊取的風(fēng)險(xiǎn)辅甥,存入cookie是為了讓客戶(hù)端少點(diǎn)代碼。也是為了從cookie恢復(fù)session燎竖。存入session是必要的璃弄,想想微信你自從登錄過(guò)就沒(méi)有每次打開(kāi)需要登錄就知道為啥了。
第五步:這步呢就是在你的app端拿到你自己的數(shù)據(jù)后將用戶(hù)信息存到內(nèi)存里面构回,方法一般都是SharedPreferences夏块。并且要記得把用戶(hù)信息封裝到我們發(fā)送網(wǎng)絡(luò)請(qǐng)求的頭部中的cookie中去哦。