開放接口
登入
login
TIP
該API使用方法為: wx.login(Object object)
- 功能說明:調用接口獲取登入憑證,通過憑證進而換取用戶登錄態資訊。
TIP
- v2版本(僅公有雲支持)遵循Luffa標準,可參攷實踐教程說明。 在IDE(最低支持版本:2.1.111)中可直接調用。
- v1版本需要和宿主用戶端聯調,在真機上返回的內容是由宿主用戶端提供,宿主的返回值可以遵循Luffa標準,也可以自定義返回內容。 在IDE中可以使用mock面板進行返回值的mock。
- 版本控制規則請參攷 apiVersion 配置。
- 參數及說明: Object object。
| 内容 | 類型 | 預設值 | 必填 | 說明 |
|---|---|---|---|---|
| success | function | - | 否 | 接口調用成功的回呼函數 |
| fail | Function | - | 否 | 接口調用失敗的回呼函數 |
| complete | Function | - | 否 | 接口調用結束的回呼函數(調用成功、失敗都會執行) |
- object.success回呼函數參數: Object res
| 内容 | 類型 | 說明 |
|---|---|---|
| code | string | 用戶登錄憑證(有效期五分鐘)。 開發者需要在服務器後臺調用調用 jscode2session ,使用code換取openid、session_key等資訊 |
- object.fail回呼函數參數: Object err
| 内容 | 類型 | 說明 |
|---|---|---|
| errMsg | string | 錯誤資訊 |
| errno | Number | errno錯誤碼,錯誤碼的詳細說明參攷 服務端錯誤碼 |
- 示例代碼:
wx.login({
success(res) {
if (res.code) {
// Initiate a network request
wx.request({
url: "https://example.com/onLogin",
data: {
code: res.code,
},
});
} else {
console.log("Login failed!" + res.errMsg);
}
},
});checkSession
TIP
該API使用方法為: wx.checkSession(Object object)
- 功能說明:檢查登入態是否過期。
TIP
- v2版本(僅公有雲支持)遵循Luffa標準,可參攷實踐教程說明。 在IDE(最低支持版本:2.1.111)中可直接調用。
- session_key具有唯一性,在使用小程序時,同一用戶在同一時刻僅有一個有效的session_key。
- 通過wx.login接口獲得的用戶登錄態擁有一定的時效性,開發者可以調用wx.checkSession接口檢測當前用戶登錄態是否有效。
- wx.checkSession的校驗對象是最後一次獲取code操作對應的登入態session_key,調用成功說明該session_key未過期,調用失敗說明session_key已過期。
- 登入態失效後開發者可以再調用wx.login獲取新的用戶登錄態。
- v1版本需要和宿主用戶端聯調,在真機上返回的內容是由宿主用戶端提供,宿主的返回值可以遵循Luffa標準,也可以自定義返回內容。 在IDE中可以使用mock面板進行返回值的mock。
- 版本控制規則請參攷 apiVersion 配置。
- 參數及說明: Object object。
| 内容 | 類型 | 預設值 | 必填 | 說明 |
|---|---|---|---|---|
| success | function | - | 否 | 接口調用成功的回呼函數 |
| fail | Function | - | 否 | 接口調用失敗的回呼函數 |
| complete | Function | - | 否 | 接口調用結束的回呼函數(調用成功、失敗都會執行) |
- 示例代碼:
wx.checkSession({
success() {
// The session_key has not expired and remains valid for this lifecycle.
},
fail() {
// The session_key has expired, and the login process needs to be executed again.
wx.login(); // Log in again.
},
});帳號資訊
TIP
帳號資訊相關API小程序支持,小遊戲暫不支持
getAccountInfoSync
TIP
該API使用方法為:Object wx.getAccountInfoSync()
- 功能說明: 獲取當前帳號資訊。 線上小程序版本號僅支持在正式版小程序中獲取,開發版和體驗版中無法獲取。
- 返回值: Object,帳號資訊
| 内容 | 類型 | 說明 |
|---|---|---|
| miniProgram | Object | 小程序帳號資訊 |
- miniProgram結構内容
| 結構内容 | 類型 | 說明 |
|---|---|---|
| appId | string | 小程序appId |
| envVersion | string | 小程序版本,合法值為: develop:開發版 trial:體驗版 release:正式版 |
| version | string | 線上小程序版本號 |
用戶資訊
TIP
帳號資訊相關API小程序支持,小遊戲暫不支持
getUserProfile
TIP
該API使用方法為:wx.getUserProfile(Object object)
功能說明:IDE現時暫不支持,該API需要和宿主用戶端聯調,在真機上返回的內容是由宿主用戶端提供,宿主的返回值可以遵循Luffa標準,也可以自定義返回內容
在IDE中可以使用mock面板進行返回值的mock獲取用戶資訊。 頁面產生按一下事件(例如button上bindtap的回檔中)後才可調用,每次請求都會彈出授權視窗,用戶同意後返回userInfo。 該接口用於替換wx.getUserInfo,詳見 用戶資訊接口調整說明
**返回值:**Object object。
| 内容 | 類型 | 預設值 | 必填 | 說明 |
|---|---|---|---|---|
| lang | string | en | 否 | 顯示用戶資訊的語言,合法值為: en:英文 zh_CN: 繁體中文 |
| desc | string | - | 是 | 聲明獲取用戶個人資訊後的用途,不超過30個字元 |
| success | Function | - | 否 | 接口調用成功的回呼函數 |
| fail | Function | - | 否 | 接口調用失敗的回呼函數 |
| complete | Function | - | 否 | 接口調用結束的回呼函數(調用成功、失敗都會執行) |
getUserInfo
TIP
該API使用方法為: wx.getUserInfo(Object object)
功能說明: IDE現時暫不支持,該API需要和宿主用戶端聯調,在真機上返回的內容是由宿主用戶端提供,宿主的返回值可以遵循Luffa標準,也可以自定義返回內容
在IDE中可以使用mock面板進行返回值的mock獲取用戶資訊,在使用過程中需要用戶授權scope.userInfo。
參數及說明: Object object。
| 内容 | 類型 | 預設值 | 必填 | 說明 |
|---|---|---|---|---|
| lang | string | en | 否 | 顯示用戶資訊的語言,合法值為: en:英文 zh_CN: 繁體中文 |
| success | Function | - | 否 | 接口調用成功的回呼函數 |
| fail | Function | - | 否 | 接口調用失敗的回呼函數 |
| complete | Function | - | 否 | 接口調用結束的回呼函數(調用成功、失敗都會執行) |
- object.success回呼函數參數: Object res
| 内容 | 類型 | 說明 |
|---|---|---|
| userInfo | UserInfo | 用戶資訊對象 |
- 範例
- 小程序用戶資訊組件範例程序碼(用戶授權)
<!-- If only displaying user avatar and nickname, the <open-data /> component can be used -->
<open-data type="userAvatarUrl"></open-data>
<open-data type="userNickName"></open-data>
<!-- The button must be used for login authorization -->
<button wx:if="{{canIUse}}" open-type="getUserInfo" bindgetuserinfo="bindGetUserInfo">Login authorization</button>
<view wx:else>Please upgrade the host client version.</view>Page({
data: {
canIUse: wx.canIUse("button.open-type.getUserInfo"),
},
onLoad: function () {
// Check if the user has already authorized.
wx.getSetting({
success(res) {
if (res.authSetting["scope.userInfo"]) {
// Already authorized, can directly call getUserInfo to get user profile photo and nickname.
wx.getUserInfo({
success: function (res) {
console.log(res.userInfo);
},
});
}
},
});
},
bindGetUserInfo(e) {
console.log(e.detail.userInfo);
},
});- 示例代碼:
// Must be called when the user has already authorized.
wx.getUserInfo({
success: function (res) {
var userInfo = res.userInfo;
var nickName = userInfo.nickName;
var avatarUrl = userInfo.avatarUrl;
},
});userInfo
- 功能說明: 用戶資訊
- 參數及說明:
| 内容 | 類型 | 說明 |
|---|---|---|
| nickName | string | 用戶昵稱 |
| avatarUrl | string | 用戶頭像圖片的URL。 URL最後一個數值代表正方形頭像大小(有0、46、64、96、132數值可選,0代表640x640的正方形頭像,46表示46x46的正方形頭像,剩餘數值以此類推。默認132),用戶沒有頭像時該項為空。 若用戶更換頭像,原有頭像URL將失效 |
| gender | number | 用戶性別。 不再返回,合法值為: 0:未知 1:男性 2:女性 |
| country | string | 用戶所在國家。 不再返回 |
| province | string | 用戶所在地區。 不再返回 |
| city | string | 用戶所在都市。 不再返回 |
| language | string | 顯示country,province,city所用的語言。 強制返回'zh_TW',合法值為: en:英文 zh_TW: 繁體中文 |
設定
AuthSetting
- 功能說明: 用戶授權設定資訊。
- 參數及說明:
| 内容 | 說明 |
|---|---|
| boolean scope.userLocation | 是否授權地理位置,對應接口 wx.getLocation,是否授權地理位置,對應接口 wx.chooseLocation |
| boolean scope.writePhotosAlbum | 是否授權保存到相册 wx.saveImageToPhotosAlbum |
| boolean scope.camera | 是否授權監視器,對應<camera /> 組件 |
| boolean scope.addFriend | 允許被添加好友,主動調用 wx.authorize 接口進行授權 |
getSetting
TIP
該API使用方法為: wx.getSetting(Object object)
- 功能說明: 獲取用戶的當前設定。
- 參數及說明: Object object。
| 内容 | 類型 | 預設值 | 必填 | 說明 |
|---|---|---|---|---|
| success | function | - | 否 | 接口調用成功的回呼函數 |
| fail | Function | - | 否 | 接口調用失敗的回呼函數 |
| complete | Function | - | 否 | 接口調用結束的回呼函數(調用成功、失敗都會執行) |
- object.success回呼函數參數: Object res。
| 内容 | 類型 | 說明 |
|---|---|---|
| authSetting | AuthSetting | 用戶授權結果 |
- 示例代碼:
wx.getSetting({
success(res) {
console.log(res.authSetting);
// res.authSetting = {
// "scope.userInfo": true,
// "scope.userLocation": true
// }
},
});openSetting
TIP
該API使用方法為: wx.openSetting(Object object)
- 功能說明: 調起用戶端小程序設定介面,返回用戶設置的操作結果,用戶發生按一下行為後,可以跳轉打開設定頁,管理授權資訊。
- 參數及說明: Object object。
| 内容 | 類型 | 預設值 | 必填 | 說明 |
|---|---|---|---|---|
| success | function | - | 否 | 接口調用成功的回呼函數 |
| fail | Function | - | 否 | 接口調用失敗的回呼函數 |
| complete | Function | - | 否 | 接口調用結束的回呼函數(調用成功、失敗都會執行) |
- object.success回呼函數參數: Object res。
| 内容 | 類型 | 說明 |
|---|---|---|
| authSetting | AuthSetting | 用戶授權結果 |
wx.openSetting({
success(res) {
console.log(res.authSetting);
// res.authSetting = {
// "scope.userInfo": true,
// "scope.userLocation": true
// }
},
});wx.openSetting({
success(res) {
console.log(res.authSetting);
// res.authSetting = {
// "scope.userInfo": true,
// "scope.userLocation": true
// }
},
});生物認證
TIP
生物認證相關API小程序支持,小遊戲暫不支持
checkIsSoterEnrolledInDevice
TIP
該API使用方法為: wx.checkIsSoterEnrolledInDevice(Object object)
- 功能說明: 校驗設備內是否錄入生物資訊。
- 參數及說明: Object object。
| 内容 | 類型 | 預設值 | 必填 | 說明 |
|---|---|---|---|---|
| success | function | - | 否 | 接口調用成功的回呼函數 |
| fail | Function | - | 否 | 接口調用失敗的回呼函數 |
| complete | Function | - | 否 | 接口調用結束的回呼函數(調用成功、失敗都會執行) |
- object.success回呼函數參數: Object res。
| 内容 | 類型 | 說明 |
|---|---|---|
| isEnrolled | boolean | 是否已錄入資訊 |
| errMsg | string | 錯誤資訊 |
- 示例代碼:
wx.checkIsSoterEnrolledInDevice({
success(res) {
console.log(res.isEnrolled);
},
});checkIsSupportSoterAuthentication
TIP
該API使用方法為: wx.checkIsSupportSoterAuthentication(Object object)
- 功能說明: 校驗本機是否支持生物認證,支持時回檔success,不支持時回檔fail。
- 參數及說明: Object object。
| 内容 | 類型 | 預設值 | 必填 | 說明 |
|---|---|---|---|---|
| success | function | - | 否 | 接口調用成功的回呼函數 |
| fail | Function | - | 否 | 接口調用失敗的回呼函數 |
| complete | Function | - | 否 | 接口調用結束的回呼函數(調用成功、失敗都會執行) |
- 示例代碼:
wx.checkIsSupportSoterAuthentication({
success() {
// Support biometric authentication
},
});startSoterAuthentication
TIP
該API使用方法為: wx.startSoterAuthentication(Object object)
- 功能說明: 開始生物認證。
- 參數及說明: Object object。
| 内容 | 類型 | 預設值 | 必填 | 說明 |
|---|---|---|---|---|
| authContent | string | '' | 否 | 驗證描述,即識別過程中顯示在介面上的對話方塊提示內容 |
| success | function | - | 否 | 接口調用成功的回呼函數 |
| fail | Function | - | 否 | 接口調用失敗的回呼函數 |
| complete | Function | - | 否 | 接口調用結束的回呼函數(調用成功、失敗都會執行) |
- 示例代碼:
wx.startSoterAuthentication({
authContent: "Unlock biometric authentication",
success() {
// Authentication successful
},
});授權
TIP
該API使用方法為: wx.authorize(Object object)
- 功能說明: 提前向用戶發起授權請求。 調用後會立刻彈窗詢問用戶是否同意授權小程序使用某項功能或獲取用戶的某些數據,但不會實際調用對應接口。 如果用戶之前已經同意授權,則不會出現彈窗,直接返回成功。
- 參數及說明: Object object。
| 内容 | 類型 | 預設值 | 必填 | 說明 |
|---|---|---|---|---|
| scope | string | - | 是 | 需要獲取許可權的scope 詳見scope |
| success | function | - | 否 | 接口調用成功的回呼函數 |
| fail | Function | - | 否 | 接口調用失敗的回呼函數 |
| complete | Function | - | 否 | 接口調用結束的回呼函數(調用成功、失敗都會執行) |
- 示例代碼:
// You can query whether the user has authorized the scope of "scope.record" using wx.getSetting
wx.getSetting({
success(res) {
if (!res.authSetting["scope.record"]) {
wx.authorize({
scope: "scope.record",
success() {
// Once the user has granted permission for the mini program to use the recording feature, subsequent calls to the wx.startRecord API will not prompt the user for permission again.
wx.startRecord();
},
});
}
},
});訂閱訊息
requestSubscribeMessage
TIP
該API使用方法為: wx.requestSubscribeMessage(Object object)
- 功能說明: 調起用戶端小程序訂閱消息介面,返回用戶訂閱消息的操作結果。 通過 wx.getSetting 接口可獲取用戶對相關模版消息的訂閱狀態
TIP
- 僅公有雲支持。
- 一次性模版id和永久模版id不可同時使用。
- 一次授權調用裏,每個tmplId對應的模版標題不能存在相同的,若出現相同的,只保留一個。
- 參數及說明: Object object。
| 内容 | 類型 | 預設值 | 必填 | 說明 |
|---|---|---|---|---|
| tmplIds | Array | - | 是 | 需要訂閱的消息模版的id的集合,一次調用最多可訂閱3條消息。 消息模版id在控制台[小程序管理-訂閱消息]中配置。 每個tmplId對應的模版標題需要不相同,否則會被過濾。 |
| success | function | - | 否 | 接口調用成功的回呼函數 |
| fail | Function | - | 否 | 接口調用失敗的回呼函數 |
| complete | Function | - | 否 | 接口調用結束的回呼函數(調用成功、失敗都會執行) |
- 示例代碼:
| 内容 | 類型 | 說明 |
|---|---|---|
| errMsg | String | 接口調用成功時errMsg值為'requestSubscribeMessage: ok' |
| [TEMPLATE_ID: string] | String | [TEMPLATE_ID]是動態的鍵,即模版id,值包括'accept'、' reject'、'ban'、'filter' 'accept':表示用戶同意訂閱該條id對應的模版消息 'reject':表示用戶拒絕訂閱該條id對應的模版消息 'ban':表示已被後臺封禁 'filter':表示該模版因為模版標題同名被後臺過濾 例如 { errMsg: "requestSubscribeMessage:ok", zun-LzcQyW-edafCVvzPkK4de2Rllr1fFpw2A_x0oXE: "accept"} 表示使用者同意訂閱zun-LzcQyW-edafCVvzPk4deRllAx |
- object.fail回呼函數參數: Object err
| 内容 | 類型 | 說明 |
|---|---|---|
| errMsg | String | 接口呼叫失敗錯誤訊息 |
| errno | Number | 接口呼叫失敗錯誤碼 |
- 錯誤碼
| errCode | errMsg | 說明 |
|---|---|---|
| 10001 | TmplIds can't be empty | 參數傳空了 |
| 10002 | Request list fail | 網絡問題,請求消息清單失敗 |
| 10003 | Request subscribe fail | 網絡問題,訂閱請求發送失敗 |
| 20001 | No template data return, verify the template id exist | 沒有模版數據,一般是模版ID不存在或者和模版類型不對應導致的 |
| 20002 | Templates type must be same | 模版消息類型既有一次性的又有永久的 |
| 20003 | Templates count out of max bounds | 模版消息數量超過上限 |
| 20004 | The main switch is switched off | 用戶關閉了主開關,無法進行訂閱 |
| 20005 | This mini program was banned from subscribing messages | 小程序被禁封 |
| 20013 | Reject DeviceMsg Template | 不允許通過該接口訂閱設備消息 |
- 示例代碼:
wx.requestSubscribeMessage({
tmplIds: [''],
success: (res) => {
console.log('requestSubscribeMessage===success', res)
}
})