使用者資訊
本文件主要提供 用户模块(user) 提供的使用者資訊 API 說明。
一、觀眾詳細資訊
Interface 介面: UserInfoDetail
| 屬性名稱 | 說明 | 類型 |
|---|---|---|
userId |
使用者 id | string |
nick |
觀眾暱稱 | string |
pic |
觀眾頭像 | string |
actor |
觀眾頭銜 | string |
openId |
微信 openid | string |
unionId |
微信 unionId | string |
authType |
該使用者的授權方式 | AuthType |
label |
標籤 | Object |
二、取得目前使用者資訊
用於取得目前使用者的詳細資訊。
未進行觀看條件授權或建立 SDK 沒有傳入使用者資訊時回傳
undefined。
Api 方法: getUserInfo(): undefined | UserInfoDetail
回傳值說明: 使用者資訊,undefined | UserInfoDetail 類型
範例:
const userInfo = watchCore.user.getUserInfo();
console.log('用户信息', userInfo);
三、判斷是否為特殊的使用者身份
使用者模組提供 Api 用於判斷使用者身份是否為內建的特殊使用者身份,如講師、管理員、助教等。
Api 方法: isSpecialUserType(userType: unknown, actor?: string): boolean
參數說明:
userType:使用者身份,
unknown類型,必傳actor:使用者頭銜,
string類型,選傳
回傳值說明: 是否特殊身份
範例:
import { ChatUserType } from '@polyv/live-watch-sdk';
console.log(watchCore.user.isSpecialUserType(ChatUserType.Teacher)); // true
console.log(watchCore.user.isSpecialUserType(ChatUserType.Manager)); // true
console.log(watchCore.user.isSpecialUserType(ChatUserType.Guest)); // true
console.log(watchCore.user.isSpecialUserType(ChatUserType.Student)); // false
console.log(watchCore.user.isSpecialUserType(ChatUserType.Viewer)); // false
console.log(watchCore.user.isSpecialUserType(ChatUserType.Dummy)); // false
console.log(watchCore.user.isSpecialUserType(ChatUserType.Dummy, '观众')); // false
四、取得目前使用者 userId
用於取得目前使用者的 userId,預設以時間戳字串作為使用者 userId,關於 userId 說明如下:
- 微信環境下進行微信授權後,以使用者的微信
openid作為 userId; - 白名單授權後,以填寫的會員碼作為 userId(優先級高於微信授權);
未進行觀看條件授權或建立 SDK 沒有傳入使用者資訊時回傳
undefined。
Api 方法: getUserId(): undefined | string
回傳值說明: 使用者 userId,undefined | string 類型
範例:
const userId = watchCore.user.getUserId();
console.log('用户 userId', userId);
五、取得目前使用者暱稱
用於取得目前使用者的暱稱。
未進行觀看條件授權或建立 SDK 沒有傳入使用者資訊時回傳
undefined。
Api 方法: getUserNick(): undefined | string
回傳值說明: 使用者暱稱,undefined | string 類型
範例:
const nickname = watchCore.user.getUserNick();
console.log('用户昵称', nickname);
六、修改目前使用者暱稱
用於觀眾二次修改暱稱。
- 透過 UserEvents.CurrentUserSetNick 事件監聽修改暱稱完成。
- 透過 UserEvents.SetNickError 事件監聽設定暱稱失敗。
Api 方法: updateUserNick(nickname: string): void
參數說明:
- nickname:新的暱稱,
string類型,必傳
範例:
watchCore.user.eventEmitter.on(UserEvents.CurrentUserSetNick, () => {
toast.success('修改昵称成功');
});
watchCore.user.eventEmitter.on(UserEvents.SetNickError, (data) => {
toast.error('修改昵称失败:' + data.message);
});
watchCore.user.updateUserNick('新的用户昵称');
七、取得目前使用者頭像網址
用於取得目前使用者的頭銜網址,觀看頁 SDK 提供 DEFAULT_VIEWER_AVATAR 預設觀眾頭像的常數。
未進行觀看條件授權或建立 SDK 沒有傳入使用者資訊時回傳
undefined。
Api 方法: getUserAvatar(): undefined | string
回傳值說明: 使用者頭像網址,undefined | string 類型
範例:
import { DEFAULT_VIEWER_AVATAR } from '@polyv/live-watch-sdk';
const userAvatar = watchCore.user.getUserAvatar();
console.log('用户头像', userAvatar);
console.log('默认头像', DEFAULT_VIEWER_AVATAR);
八、取得目前使用者的微信 openId
用於取得目前使用者的微信 openId,僅在微信(非)靜默授權後才回傳
Api 方法: getUserOpenId(): undefined | string
回傳值說明: 微信 openId,undefined | string 類型
範例:
const openId = watchCore.user.getUserOpenId();
console.log('openId', openId);
九、取得目前使用者的微信 unionId
用於取得目前使用者的微信 unionId,僅在微信(非)靜默授權後才回傳
Api 方法: getUserUnionId(): undefined | string
回傳值說明: 微信 unionId,undefined | string 類型
範例:
const unionId = watchCore.user.getUserUnionId();
console.log('unionId', unionId);
十、取得目前使用者的頭銜
Api 方法: getUserActor(): undefined | string
從 v0.11.0 版本開始支援
回傳值說明: 使用者頭銜,undefined | string 類型
範例:
const actor = watchCore.user.getUserActor();
console.log('actor', actor);
十一、取得目前使用者相關的標籤
Api 方法: getUserLabels(): undefined | Object
從 v2.18.0 版本開始支援
回傳值說明: 使用者頭銜
const labels = watchCore.user.getUserLabels();
console.log('labels', labels);
```,`undefined | Object` 類型
<a id="classmethoddoc_plvusermodule_needhideuseractor"></a>
## 十二、是否需要隱藏使用者頭銜
**Api 方法:** `needHideUserActor(): boolean`
> 從 v1.2.0 版本開始支援
<a id="classmethoddoc_plvusermodule_getuserauthtype"></a>
## 十三、取得目前使用者的授權方式
使用者取得目前使用者的授權方式,未授權時回傳 AuthType.None
**Api 方法:** `getUserAuthType(): AuthType`
**回傳值說明:** 授權方式,`AuthType` 類型
**範例:**
```js
const authType = watchCore.user.getUserAuthType();
console.log('当前用户的授权方式', authType);
十四、目前是否需要手機號碼實名認證
Api 方法: needRealNameAuth(): Promise<boolean>
從 v0.8.0 版本開始支援
回傳值說明: 是否需要認證,Promise<boolean> 類型
範例:
const needAuth = watchCore.user.needRealNameAuth();
if (needAuth) {
console.log('需要认证,显示认证弹层');
}
十五、儲存實名認證資訊
Api 方法: saveRealNameData(option: SaveRealNameOptions): Promise<RealNameResult>
從 v0.8.0 版本開始支援
參數說明:
- option:選項參數,
SaveRealNameOptions類型,必傳,詳細類型說明如下
| 參數名稱 | 說明 | 類型 | 必須 | 預設值 |
|---|---|---|---|---|
areaCode |
手機區號 | string |
是 | - |
phoneNumber |
手機號碼 | string |
是 | - |
smsCode |
簡訊驗證碼 | string |
是 | - |
回傳值說明: Promise<RealNameResult> 類型
十六、取得目前觀眾的雲席資訊
Api 方法: getUserSeatInfo(): undefined | ViewerSeatInfo
從 v0.10.0 版本開始支援
回傳值說明: undefined | ViewerSeatInfo 類型
十七、取得目前觀眾的跟進人資訊
Api 方法: getUserSaleInfo(): ViewerSaleInfo
從 v1.1.0 版本開始支援
回傳值說明: 使用者跟進人資訊,ViewerSaleInfo 類型,詳細類型說明如下
| 屬性名稱 | 說明 | 類型 |
|---|---|---|
saleId |
跟進人 id | undefined | string |
十八、取得邀請觀看邀請員/分銷員Id
Api 方法: getInviteWatchSaleId(): null | string
從 v2.0.0 版本開始支援
回傳值說明: null | string 類型
十九、取得邀請觀看上級邀請員的 inviteWatchSaleId
Api 方法: getInviteWatchInviteSalesId(): null | string
從 v2.2.0 版本開始支援
回傳值說明: null | string 類型
