Android 微信第三方登陸

步驟一 微信開發者平臺

我開始的解決思路是,去微信開發者平臺看API文檔。html

這個API文檔的主要意思呢,有三點:android

一、你得下載這幾樣東西(下載連接),一個是他的範例代碼,一個是他的簽名生成工具。ios

二、若是你本身的APP想要微信第三方受權,你得去申請一個APPID,這個APPID呢,就是微信給我們APP分配的一個代號。固然微信不是免費給你服務,爲了得到這個第三方受權的功能,你得給微信交300塊錢。申請到這個受權以後,你須要填寫一個應用包名,和一個應用簽名api

應用包名android-studio

應用簽名微信

使用簽名生成工具,輸入包名,查詢到應用簽名微信開發

 

三、而後打開DEMOapp

程序的入口WXEntryActivity是咱們所最須要關注的ide

?
1
2
3
4
5
// 微信發送請求到第三方應用時,會回調到該方法
@Override
public void onReq(BaseReq req) {
    // TODO
}

當點擊受權登錄的界面的時候,會自動調用這個onResp方法,因此咱們能夠在這裏面取得所須要token。注意andorid裏叫token,ios裏面叫code,而不是由於sdk版本的問題,這是須要注意的。工具

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// 第三方應用發送到微信的請求處理後的響應結果,會回調到該方法
@Override
public void onResp(BaseResp resp) {
    int result = 0;
    switch (resp.errCode) {
        case BaseResp.ErrCode.ERR_OK:
            result = R. string .errcode_success;
            /*獲取token*/
            SendAuth.Resp sendResp = (SendAuth.Resp) resp;
            String code = sendResp.token;
            Log.d( "Tag" , "code\t" + code);
            break ;
        case BaseResp.ErrCode.ERR_USER_CANCEL:
            result = R. string .errcode_cancel;
            break ;
        case BaseResp.ErrCode.ERR_AUTH_DENIED:
            result = R. string .errcode_deny;
            break ;
        default :
            result = R. string .errcode_unknown;
            break ;
    }

APP_ID 替換爲你的應用從官方網站申請到的合法appId

?
1
2
3
4
public class Constants {
    // APP_ID 替換爲你的應用從官方網站申請到的合法appId
    public static final String APP_ID = "wx77777" ;
}

 

?
1
2
3
4
5
6
7
// IWXAPI 是第三方app和微信通訊的openapi接口
private IWXAPI api;
final SendAuth.Req req = new SendAuth.Req();
req.scope = "snsapi_userinfo" ;
req.state = "wechat_sdk_demo_test" ;
//發送受權登錄請求
api.sendReq(req);

這一步就是和微信要code。執行了這一段代碼以後。微信會調用剛纔WXEntityActivity類裏面的onResp()方法。而且把code返回來了。見上面那一段代碼。獲取到code以後就能夠經過code獲取access_token了。

請求如下連接獲取access_token:

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

這步和微信通訊得到access_token就是普通的訪問連接。 用httpClient就好了,而不是接入指南里說的那個和微信通訊的方法onReq().而後仍是這樣的方式經過access_token.就能夠調用接口得到用戶基本信息了。具體返回參數什麼的接入指南里面說的很清楚。至此微信受權基本是成功了。

這裏,咱們要添加Custom debug keystore。上面的那個debug keystore不會和微信通訊。

而咱們添加的這個keystore 也要符合一些規範因此要改一改。

不過在開發的過程當中要注意一下debug keystore。

步驟二 Android studio如何生成keystore文件

第一步 建立簽名文件

第二步 填寫簽名參數

第三步 選擇構建類型

第四步 查看生成第apk文件

步驟三 Android studio如何定位keystore文件

在運行微信分享Demo及新浪微博分享Demo時,須要修改使用Demo中的debug.keystore才能運行受權及和分享

在進行Android開發中,所用到的工具,就Eclispse和Android Studio比較多。其中,使用Eclipse裏修改debug.keystore的方式新浪微博文檔有介紹,在Eclipse裏點擊"Windows-->Preferences-->Android-->Build",在右邊的"Custom debug keystore"選擇Demo中的debug.keystore便可。

在Android Studio中的作法是"Project Structure"中「Modules」中的應用的模塊。而後選擇"Signing",點擊"+"號,起名爲「debug」,並在「Store File」裏選擇Demo中的debug.keystore,以下圖

而後在選擇「Build Types」在「debug」中的"Signing Config"選擇上面配置的"debug",以下圖

點擊「OK」,從新編譯就能夠了。

經過上面配置完後,會自動在項目模塊中的build.gradle裏的android {}裏生成

?
1
2
3
4
5
signingConfigs {
    debug {
        storeFile file( '.keystore裏文件路徑' )
    }
}

以及在buildTypes裏生成

?
1
2
3
debug {
    signingConfig signingConfigs.debug
}

固然啦,能夠不用界面配置,直接在build.gradle裏寫上面的配置也都OK的

步驟四 獲取簽名 填寫到微信開發者平臺

接下來將定位到jks文件的工程燒寫到程序中,而後將簽名工具的MD碼填寫到微信開發者平臺,就能調用第三方受權登錄了。

 

效果圖  

  

參考連接:

微信受權登錄接入第三方App(步驟總結)Android

Android Studio修改debug.keystore

Android Studio 簽名打包過程圖解

相關文章
相關標籤/搜索