Android實(shí)現(xiàn)使用微信登錄第三方APP的方法
本文實(shí)例講述了Android實(shí)現(xiàn)使用微信登錄第三方APP的方法。分享給大家供大家參考,具體如下:
使用微信登錄APP,免去注冊過程,現(xiàn)在已經(jīng)有很多的類似應(yīng)用了。集成該功能過程不復(fù)雜,但還是有一些地方需要注意的。
開始之前,需要做下面的準(zhǔn)備工作。
1、到微信開放平臺注冊你的APP,并申請開通微信登錄的權(quán)限。參考這里:
https://open.weixin.qq.com//
2、下載Android SDK和簽名查看工具,請參考:
https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419319167&token=&lang=zh_CN/
3、獲取到APP的簽名,并填寫到微信開放平臺。
下面開始進(jìn)入主題:
引入微信登錄相關(guān)SDK到項(xiàng)目的lib文件夾中,就一個(gè)文件:
libammsdk.jar
調(diào)用微信,申請用戶授權(quán):
//api注冊 api = WXAPIFactory.createWXAPI(this, "APP_ID", true); api.registerApp("APP_ID"); SendAuth.Req req = new SendAuth.Req(); //授權(quán)讀取用戶信息 req.scope = "snsapi_userinfo"; //自定義信息 req.state = "wechat_sdk_demo_test"; //向微信發(fā)送請求 api.sendReq(req);
將APP_ID替換成你在微信開放平臺申請到的,上面的代碼就可以調(diào)起微信了。
授權(quán)成功后,微信會返回一個(gè)code,下面介紹如何接收微信回傳的信息。
在你的包名相應(yīng)目錄下新建一個(gè)wxapi目錄,并在該wxapi目錄下新增一個(gè)WXEntryActivity.java文件,輸入類似下面的代碼:
package 你的包名.wxapi;
public class WXEntryActivity extends Activity implements IWXAPIEventHandler{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //注冊API api = WXAPIFactory.createWXAPI(this, "APP_ID"); api.handleIntent(getIntent(), this); } @Override public void onResp(BaseResp resp) { if(resp instanceof SendAuth.Resp){ SendAuth.Resp newResp = (SendAuth.Resp) resp; //獲取微信傳回的code String code = newResp.code; } } }
在AndroidManifest.xml中加入下面的代碼:
修復(fù)WXEntryActivity中的錯(cuò)誤,在onResp方法中獲取到code,然后通過下面的接口獲取到token和openid:
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
得到下面的數(shù)據(jù):
{ "access_token":"ACCESS_TOKEN", "expires_in":7200, "refresh_token":"REFRESH_TOKEN", "openid":"OPENID", "scope":"SCOPE", "unionid":"o6_bmasdasdsad6_2sgVt7hMZOPfL" }
openid可以作為用戶的唯一標(biāo)識,將openid保存下來,就可以實(shí)現(xiàn)登錄狀態(tài)的檢查了。
如果需要獲取用戶的信息,例如昵稱,頭像,可以使用下面的接口:
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID
得到的數(shù)據(jù)為:
{ "openid":"OPENID", "nickname":"NICKNAME", "sex":1, "province":"PROVINCE", "city":"CITY", "country":"COUNTRY", "headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0", "privilege":[ "PRIVILEGE1", "PRIVILEGE2" ], "unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL" }
更多的接口使用,請參考:
https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317853&lang=zh_CN
可能的問題:
1、無法調(diào)起微信。
可能的原因是簽名錯(cuò)誤,請檢查簽名。
2、無法接受到微信回傳的信息
可能的原因是沒有把WXEntryActivity加入到AndroidManifest.xml中。
PS:關(guān)于AndroidManifest.xml文件相關(guān)屬性功能可參考本站在線工具:
Android Manifest功能與權(quán)限描述大全:
http://tools.jb51.net/table/AndroidManifest
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android開發(fā)入門與進(jìn)階教程》、《Android數(shù)據(jù)庫操作技巧總結(jié)》、《Android編程之a(chǎn)ctivity操作技巧總結(jié)》、《Android文件操作技巧匯總》、《Android編程開發(fā)之SD卡操作方法匯總》、《Android資源操作技巧匯總》、《Android視圖View技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計(jì)有所幫助。
相關(guān)文章
Android筆記之:深入為從右向左語言定義復(fù)雜字串的詳解
本篇文章是對Android中為從右向左語言定義復(fù)雜字串進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05Android EdText編輯框禁止輸入表情符號(使用正則表達(dá)式)
這篇文章主要介紹了Android EdText編輯框禁止輸入表情符號使用正則表達(dá)式,需要的朋友可以參考下2017-06-06[Alibaba-ARouter]淺談簡單好用的Android頁面路由框架
這篇文章主要介紹了[Alibaba-ARouter]淺談簡單好用的Android頁面路由框架,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11一文讀懂Android?Kotlin的數(shù)據(jù)流
這篇文章主要介紹了一文讀懂Android?Kotlin的數(shù)據(jù)流,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-07-07深入學(xué)習(xí)Android?ANR?的原理分析及解決辦法
Android系統(tǒng)中,AMS和WMS會檢測App的響應(yīng)時(shí)間,如果App在特定時(shí)間無法相應(yīng)屏幕觸摸或鍵盤輸入時(shí)間,或者特定事件沒有處理完畢,就會出現(xiàn)ANR。本文將帶領(lǐng)大學(xué)深入學(xué)習(xí)一下ANR的原理及解決辦法,感興趣的同學(xué)可以學(xué)習(xí)一下2021-11-11Android中Property Animation屬性動畫編寫的實(shí)例教程
這篇文章主要介紹了Android中Property Animation屬性動畫編寫的實(shí)例教程,Property Animation對于動畫幀的操控十分強(qiáng)大,需要的朋友可以參考下2016-04-04Flutter添加頁面過渡動畫實(shí)現(xiàn)步驟
這篇文章主要為大家介紹了Flutter添加頁面過渡動畫,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05詳解Android中實(shí)現(xiàn)Redux方法
本篇文章給大家通過代碼實(shí)例教學(xué)Android中實(shí)現(xiàn)Redux的方法,有需要的朋友跟著參考下吧。2018-01-01