ymx-yunxin-im
    正在准备搜索索引...

    接口 YmxYunxinIm

    网易云信 IM

    接入云信官方 IM 界面套件,提供会话列表、通讯录、单聊、群聊、会话设置等完整界面, 以及登录态、新消息、未读数、好友申请、入群申请等事件与厂商离线推送配置。

    事件通过 setListener 接收,eventName 固定为 event,data 为 { action, data }:

    • loginStatus 登录状态变更,data 为 { status },status 取值 logout、logining、logined、waiting
    • connectStatus 连接状态变更,data 为 { status },status 取值 disconnected、connecting、connected、waiting
    • loginFailed 登录鉴权失败,data 为 { code, message }
    • kickedOffline 被踢下线,data 为 { reason, description },reason 取值 clientExclusive、server、client、clientQuietly
    • messageReceived 收到新消息,data 为 { messages },messages 为 PushMessage 数组
    • unreadCount 会话未读数变更,data 为 { messages }
    • friendApplication 收到好友申请,data 为 { accountId, postscript, time }
    • teamInvitation 收到入群申请,data 为 { teamId, operatorAccountId, postscript, time }
    const im = ymx.requirePlugin('ymx-yunxin-im') as YmxYunxinIm;

    im.setListener((eventName, res) => {
    if (eventName !== 'event') return;
    if (res.action === 'messageReceived') console.log('新消息:', res.data.messages);
    if (res.action === 'unreadCount') console.log('未读数:', res.data.messages);
    });

    await im.initSdk({ appKey: 'your app key' });
    await im.login({ accountId: 'account1', token: 'token1' });
    await im.openMain();
    interface YmxYunxinIm {
        id: string;
        version: string;
        acceptFriendApplication(data: FriendApplicationActionData): Promise<void>;
        acceptTeamApplication(data: TeamApplicationActionData): Promise<void>;
        acceptTeamInvitation(
            data: TeamInvitationActionData,
        ): Promise<AcceptTeamInvitationResult>;
        addBlockUser(data: AccountData): Promise<void>;
        addCollection(data: AddCollectionData): Promise<CollectionItem>;
        addConversationsToGroup(data: ConversationGroupMembersData): Promise<void>;
        addFriend(data: AddFriendData): Promise<void>;
        addQuickComment(data: QuickCommentData): Promise<void>;
        cancelMessageUpload(data: MessageClientIdData): Promise<void>;
        cancelMigrateMessages(): Promise<void>;
        clearHistory(data: ClearHistoryData): Promise<void>;
        clearLocalMessages(data?: ClearLocalMessagesData): Promise<void>;
        clearRoamingMessages(data: ClearRoamingMessagesData): Promise<void>;
        clearTeamJoinActions(): Promise<void>;
        clearTotalUnreadCount(): Promise<void>;
        createConversationGroup(
            data: CreateConversationGroupData,
        ): Promise<CreateConversationGroupResult>;
        createTeam(data: CreateTeamData): Promise<CreateTeamResult>;
        deleteConversation(data: DeleteConversationData): Promise<void>;
        deleteConversationGroup(data: ConversationGroupIdData): Promise<void>;
        deleteFriend(data: AccountData): Promise<void>;
        deleteMessage(data: DeleteMessageData): Promise<void>;
        deserializeMessage(
            data: DeserializeMessageData,
        ): Promise<DeserializeMessageResult>;
        dismissTeam(data: TeamData): Promise<void>;
        exportMessages(data?: ExportMessagesData): Promise<ExportMessagesResult>;
        followTeamMembers(data: FollowTeamMembersData): Promise<void>;
        forwardMessage(data: ForwardMessageData): Promise<SendMessageResult>;
        getAllTeamMessageMuteMode(): Promise<TeamMuteListResult>;
        getBlockList(): Promise<BlockListResult>;
        getCloudMessages(
            data: GetCloudMessagesData,
        ): Promise<HistoryMessagesExResult>;
        getCollectionList(
            data?: GetCollectionListData,
        ): Promise<CollectionListResult>;
        getConversation(data: ConversationData): Promise<ConversationItem>;
        getConversationGroupList(): Promise<ConversationGroupListResult>;
        getConversationList(
            data?: GetConversationListData,
        ): Promise<ConversationListResult>;
        getConversationListByIds(
            data: ConversationIdsData,
        ): Promise<ConversationListResult>;
        getConversationMuteStatus(
            data: ConversationData,
        ): Promise<MuteStatusResult>;
        getDndConfig(): Promise<DndConfig>;
        getFriendApplications(): Promise<FriendApplicationListResult>;
        getFriendList(): Promise<FriendListResult>;
        getFriendsByIds(data: GetFriendsByIdsData): Promise<FriendListResult>;
        getHistoryMessages(
            data: GetHistoryMessagesData,
        ): Promise<GetHistoryMessagesResult>;
        getHistoryMessagesEx(
            data: GetHistoryMessagesExData,
        ): Promise<HistoryMessagesExResult>;
        getJoinedTeamCount(): Promise<CountResult>;
        getJoinedTeamMembers(): Promise<JoinedTeamMemberListResult>;
        getLoginState(): Promise<LoginStateResult>;
        getManagerTeams(): Promise<TeamListResult>;
        getMessageByIds(data: GetMessageByIdsData): Promise<GetMessageByIdsResult>;
        getMessageReceipt(data: ConversationData): Promise<P2PReadReceipt>;
        getOwnerTeams(): Promise<TeamListResult>;
        getP2PMessageMuteList(): Promise<MuteListResult>;
        getP2PMessageMuteMode(data: AccountData): Promise<MuteStatusResult>;
        getPinnedMessages(data: ConversationData): Promise<PinnedMessageListResult>;
        getStickTopConversations(): Promise<ConversationListResult>;
        getTeamApplications(): Promise<TeamApplicationListResult>;
        getTeamInfoFromCloud(
            data: GetTeamInfoFromCloudData,
        ): Promise<GetTeamInfoFromCloudResult>;
        getTeamInvitations(): Promise<TeamInvitationListResult>;
        getTeamJoinActionUnreadCount(): Promise<CountResult>;
        getTeamList(): Promise<TeamListResult>;
        getTeamMembers(data: TeamData): Promise<TeamMembersResult>;
        getTeamMembersByIds(
            data: GetTeamMembersByIdsData,
        ): Promise<TeamMembersResult>;
        getTeamMessageMuteMode(data: TeamData): Promise<MuteStatusResult>;
        getTeamsInfo(data: GetTeamsInfoData): Promise<TeamListResult>;
        getTopicList(data: GetTopicListData): Promise<TopicListResult>;
        getTopicMessages(
            data: GetTopicMessagesData,
        ): Promise<GetHistoryMessagesResult>;
        getTotalUnreadCount(): Promise<TotalUnreadCountResult>;
        getUnreadCount(): Promise<UnreadResult>;
        getUnreadCountByIds(data: GetUnreadCountByIdsData): Promise<CountResult>;
        getUserInfo(data: GetUserInfoData): Promise<GetUserInfoResult>;
        getUsersFromCloud(
            data: GetUsersFromCloudData,
        ): Promise<GetUsersFromCloudResult>;
        importLocalMessages(
            data: ImportLocalMessagesData,
        ): Promise<ImportLocalMessagesResult>;
        importMessages(data: ImportMessagesData): Promise<void>;
        initSdk(data: InitData): Promise<InitResult>;
        insertLocalMessage(
            data: InsertLocalMessageData,
        ): Promise<SendMessageResult>;
        insertLocalMessageEx(
            data: InsertLocalMessageExData,
        ): Promise<SendMessageResult>;
        inviteTeamMembers(data: TeamMembersData): Promise<InviteTeamMembersResult>;
        isMobileOnDesktopOnline(): Promise<PushSwitchResult>;
        isPeerRead(data: MessageClientIdData): Promise<PeerReadResult>;
        isPushEnabled(): Promise<PushSwitchResult>;
        joinTeam(data: JoinTeamData): Promise<void>;
        kickTeamMembers(data: TeamMembersData): Promise<void>;
        login(data: LoginData): Promise<void>;
        logout(): Promise<void>;
        markConversationRead(data: ConversationData): Promise<void>;
        markTeamJoinActionsRead(): Promise<void>;
        modifyMessage(data: ModifyMessageData): Promise<void>;
        openAddFriend(): Promise<void>;
        openAIUsers(): Promise<void>;
        openBlockList(): Promise<void>;
        openChat(data: OpenChatData): Promise<void>;
        openChatSetting(data: OpenChatSettingData): Promise<void>;
        openContacts(): Promise<void>;
        openConversationGroups(): Promise<void>;
        openConversations(): Promise<void>;
        openMain(data?: OpenMainData): Promise<void>;
        openMineInfo(): Promise<void>;
        openMyBots(): Promise<void>;
        openMyTeams(): Promise<void>;
        openProfile(data: OpenProfileData): Promise<void>;
        openSearch(): Promise<void>;
        openTeamChat(data: OpenTeamChatData): Promise<void>;
        openTeamInfo(data: OpenTeamData): Promise<void>;
        openTeamMembers(data: OpenTeamData): Promise<void>;
        openTeamSetting(data: OpenTeamData): Promise<void>;
        openValidationMessages(): Promise<void>;
        pinMessage(data: PinMessageData): Promise<void>;
        publishCustomUserStatus(data: PublishCustomUserStatusData): Promise<void>;
        queryUserStatusSubscriptions(
            data: UnsubscribeUserStatusData,
        ): Promise<UserStatusSubscriptionResult>;
        quitTeam(data: TeamData): Promise<void>;
        rejectFriendApplication(data: FriendApplicationActionData): Promise<void>;
        rejectTeamApplication(data: TeamApplicationActionData): Promise<void>;
        rejectTeamInvitation(data: TeamInvitationActionData): Promise<void>;
        removeBlockUser(data: AccountData): Promise<void>;
        removeCollections(
            data: RemoveCollectionsData,
        ): Promise<RemoveCollectionsResult>;
        removeConversationsFromGroup(
            data: ConversationGroupMembersData,
        ): Promise<void>;
        removeListener(): Promise<void>;
        removeQuickComment(data: QuickCommentData): Promise<void>;
        removeTeamJoinAction(data: RemoveTeamJoinActionData): Promise<void>;
        removeTopics(data: RemoveTopicsData): Promise<void>;
        replyTopicMessage(data: ReplyTopicMessageData): Promise<SendMessageResult>;
        revokeMessage(data: RevokeMessageData): Promise<void>;
        searchCloudMessages(
            data: SearchCloudMessagesData,
        ): Promise<SearchMessagesResult>;
        searchMessages(data: SearchMessagesData): Promise<SearchMessagesResult>;
        searchTeamByKeyword(data: SearchTeamData): Promise<TeamListResult>;
        searchTeamMembers(data: SearchTeamMembersData): Promise<TeamMembersResult>;
        searchUser(data: SearchUserData): Promise<SearchUserResult>;
        selectContacts(data?: SelectContactsData): Promise<SelectContactsResult>;
        selectConversations(
            data?: SelectConversationsData,
        ): Promise<SelectConversationsResult>;
        selectTeamMembers(
            data: SelectTeamMembersData,
        ): Promise<SelectTeamMembersResult>;
        sendAudioMessage(data: SendAudioMessageData): Promise<SendMessageResult>;
        sendCallMessage(data: SendCallMessageData): Promise<SendMessageResult>;
        sendCustomMessage(data: SendCustomMessageData): Promise<SendMessageResult>;
        sendFileMessage(data: SendFileMessageData): Promise<SendMessageResult>;
        sendImageMessage(data: SendImageMessageData): Promise<SendMessageResult>;
        sendLocationMessage(
            data: SendLocationMessageData,
        ): Promise<SendMessageResult>;
        sendTextMessage(data: SendTextMessageData): Promise<SendMessageResult>;
        sendTipsMessage(data: SendTipsMessageData): Promise<SendMessageResult>;
        sendTopicMessage(data: SendTopicMessageData): Promise<SendMessageResult>;
        sendVideoMessage(data: SendVideoMessageData): Promise<SendMessageResult>;
        serializeMessage(
            data: SerializeMessageData,
        ): Promise<SerializeMessageResult>;
        setConversationMute(data: ConversationMuteData): Promise<void>;
        setConversationSticky(data: ConversationStickyData): Promise<void>;
        setDndConfig(data: DndConfig): Promise<void>;
        setFriendAlias(data: FriendAliasData): Promise<void>;
        setListener(
            listener: (eventName: string, data: any) => void,
        ): Promise<void>;
        setMobileOnDesktopOnline(data: PushSwitchData): Promise<void>;
        setNavigationInfo(data?: NavigationInfoData): Promise<NavigationInfoData>;
        setPushEnabled(data: PushSwitchData): Promise<void>;
        setTeamChatBanned(data: SetTeamChatBannedData): Promise<void>;
        setTeamMemberChatBanned(data: SetTeamMemberChatBannedData): Promise<void>;
        setTeamMemberRole(data: SetTeamMemberRoleData): Promise<void>;
        subscribeUserStatus(
            data: SubscribeUserStatusData,
        ): Promise<SubscribeUserStatusResult>;
        transferTeamOwner(data: TransferTeamOwnerData): Promise<void>;
        translateText(data: TranslateTextData): Promise<TranslateTextResult>;
        unfollowTeamMembers(data: FollowTeamMembersData): Promise<void>;
        unpinMessage(data: UnpinMessageData): Promise<void>;
        unsubscribeUserStatus(
            data: UnsubscribeUserStatusData,
        ): Promise<SubscribeUserStatusResult>;
        updateCollectionExtension(
            data: UpdateCollectionExtensionData,
        ): Promise<void>;
        updateConversationGroup(data: UpdateConversationGroupData): Promise<void>;
        updateLocalMessage(
            data: UpdateLocalMessageData,
        ): Promise<UpdateLocalMessageResult>;
        updatePinMessage(data: UpdatePinMessageData): Promise<void>;
        updateProfile(data: UpdateProfileData): Promise<void>;
        updateSelfTeamMemberInfo(data: UpdateSelfTeamMemberData): Promise<void>;
        updateTeamInfo(data: UpdateTeamInfoData): Promise<void>;
        updateTeamMemberNick(data: UpdateTeamMemberNickData): Promise<void>;
        updateTopic(data: UpdateTopicData): Promise<void>;
        voiceToText(data: VoiceToTextData): Promise<VoiceToTextResult>;
    }

    层级

    • JsApiBase
      • YmxYunxinIm
    索引

    属性

    方法

    acceptFriendApplication acceptTeamApplication acceptTeamInvitation addBlockUser addCollection addConversationsToGroup addFriend addQuickComment cancelMessageUpload cancelMigrateMessages clearHistory clearLocalMessages clearRoamingMessages clearTeamJoinActions clearTotalUnreadCount createConversationGroup createTeam deleteConversation deleteConversationGroup deleteFriend deleteMessage deserializeMessage dismissTeam exportMessages followTeamMembers forwardMessage getAllTeamMessageMuteMode getBlockList getCloudMessages getCollectionList getConversation getConversationGroupList getConversationList getConversationListByIds getConversationMuteStatus getDndConfig getFriendApplications getFriendList getFriendsByIds getHistoryMessages getHistoryMessagesEx getJoinedTeamCount getJoinedTeamMembers getLoginState getManagerTeams getMessageByIds getMessageReceipt getOwnerTeams getP2PMessageMuteList getP2PMessageMuteMode getPinnedMessages getStickTopConversations getTeamApplications getTeamInfoFromCloud getTeamInvitations getTeamJoinActionUnreadCount getTeamList getTeamMembers getTeamMembersByIds getTeamMessageMuteMode getTeamsInfo getTopicList getTopicMessages getTotalUnreadCount getUnreadCount getUnreadCountByIds getUserInfo getUsersFromCloud importLocalMessages importMessages initSdk insertLocalMessage insertLocalMessageEx inviteTeamMembers isMobileOnDesktopOnline isPeerRead isPushEnabled joinTeam kickTeamMembers login logout markConversationRead markTeamJoinActionsRead modifyMessage openAddFriend openAIUsers openBlockList openChat openChatSetting openContacts openConversationGroups openConversations openMain openMineInfo openMyBots openMyTeams openProfile openSearch openTeamChat openTeamInfo openTeamMembers openTeamSetting openValidationMessages pinMessage publishCustomUserStatus queryUserStatusSubscriptions quitTeam rejectFriendApplication rejectTeamApplication rejectTeamInvitation removeBlockUser removeCollections removeConversationsFromGroup removeListener removeQuickComment removeTeamJoinAction removeTopics replyTopicMessage revokeMessage searchCloudMessages searchMessages searchTeamByKeyword searchTeamMembers searchUser selectContacts selectConversations selectTeamMembers sendAudioMessage sendCallMessage sendCustomMessage sendFileMessage sendImageMessage sendLocationMessage sendTextMessage sendTipsMessage sendTopicMessage sendVideoMessage serializeMessage setConversationMute setConversationSticky setDndConfig setFriendAlias setListener setMobileOnDesktopOnline setNavigationInfo setPushEnabled setTeamChatBanned setTeamMemberChatBanned setTeamMemberRole subscribeUserStatus transferTeamOwner translateText unfollowTeamMembers unpinMessage unsubscribeUserStatus updateCollectionExtension updateConversationGroup updateLocalMessage updatePinMessage updateProfile updateSelfTeamMemberInfo updateTeamInfo updateTeamMemberNick updateTopic voiceToText

    属性

    id: string

    获取插件 ID

    version: string

    获取插件版本,如 1.2.3

    方法

    • 同意好友申请

      参数

      返回 Promise<void>

      无返回值

      await im.acceptFriendApplication({ accountId: 'account2' });
      
    • 同意入群申请(群主或管理员)

      参数

      返回 Promise<void>

      无返回值

      await im.acceptTeamApplication({ teamId: 'team_1', accountId: 'account2' });
      
    • 把账号加入黑名单

      参数

      返回 Promise<void>

      无返回值

      await im.addBlockUser({ accountId: 'account2' });
      
    • 添加收藏

      collectionType 与 collectionData 由业务自定义(云信只做存储):例如用 1 表示「消息」, collectionData 传序列化后的消息内容。

      参数

      返回 Promise<CollectionItem>

      收藏项

      const res = await im.addCollection({ collectionType: 1, collectionData: '{"text":"重点内容"}' });
      console.log(res.collectionId);
    • 把会话加入分组

      参数

      返回 Promise<void>

      无返回值

      await im.addConversationsToGroup({ groupId: 'group_1', conversationIds: ['account1|1|account2'] });
      
    • 添加好友

      apply 为 true 时发送好友申请(对方同意后才成为好友),否则直接添加。

      参数

      返回 Promise<void>

      无返回值

      await im.addFriend({ accountId: 'account2', postscript: '我是 ymx' });
      
    • 给消息添加快捷评论

      参数

      返回 Promise<void>

      无返回值

      实测当前应用未开通快捷评论能力(服务端返回 quick comment function disabled),代码侧已就位。

      await im.addQuickComment({ messageClientId: 'xxx', index: 1 });
      
    • 取消消息附件的上传(用于图片/视频/文件发送中途放弃)

      参数

      返回 Promise<void>

      无返回值

      await im.cancelMessageUpload({ messageClientId: 'xxx' });
      
    • 取消正在进行的消息迁移(导出/导入)

      返回 Promise<void>

      无返回值

      await im.cancelMigrateMessages();
      
    • 清空会话聊天记录(保留会话本身)

      参数

      返回 Promise<void>

      无返回值

      await im.clearHistory({ conversationId: 'account1|1|account2' });
      
    • 清理本地消息

      注意:该接口按时间清理全部会话的本地消息(不影响服务端漫游消息),请谨慎调用。

      参数

      返回 Promise<void>

      无返回值

      await im.clearLocalMessages({ anchorTime: 1700000000000 });
      
    • 清理漫游消息(服务端历史消息)

      参数

      返回 Promise<void>

      无返回值

      await im.clearRoamingMessages({ conversationIds: ['account1|1|account2'] });
      
    • 清空全部群申请/邀请记录

      返回 Promise<void>

      无返回值

      该操作会删除服务端保存的全部申请/邀请记录(含已处理的),请谨慎调用。

      await im.clearTeamJoinActions();
      
    • 清除所有会话的总未读数

      返回 Promise<void>

      无返回值

      await im.clearTotalUnreadCount();
      
    • 创建群,可同时邀请成员

      参数

      返回 Promise<CreateTeamResult>

      新群 ID

      const res = await im.createTeam({ name: '项目群', accountIds: ['account2'] });
      console.log(res.teamId);
    • 删除会话

      clearMessage 为 true 时同时删除该会话的消息。

      参数

      返回 Promise<void>

      无返回值

      await im.deleteConversation({ conversationId: 'account1|1|account2', clearMessage: true });
      
    • 删除会话分组

      参数

      返回 Promise<void>

      无返回值

      await im.deleteConversationGroup({ groupId: 'group_1' });
      
    • 删除好友

      参数

      返回 Promise<void>

      无返回值

      await im.deleteFriend({ accountId: 'account2' });
      
    • 删除消息

      onlyDeleteLocal 为 true 时只删本地,不通知服务端与其他端。

      参数

      返回 Promise<void>

      无返回值

      await im.deleteMessage({ messageClientId: 'xxx', onlyDeleteLocal: true });
      
    • 解散群(仅群主可调用)

      参数

      返回 Promise<void>

      无返回值

      await im.dismissTeam({ teamId: 'team_1' });
      
    • 关注群成员(关注后其消息会特别提醒)

      参数

      返回 Promise<void>

      无返回值

      await im.followTeamMembers({ teamId: 'team_1', accountIds: ['account2'] });
      
    • 查询所有群的免打扰设置

      返回 Promise<TeamMuteListResult>

      群免打扰列表

      const res = await im.getAllTeamMessageMuteMode();
      console.log(res.items);
    • 查询黑名单

      返回 Promise<BlockListResult>

      黑名单账号列表

      const res = await im.getBlockList();
      console.log(res.accountIds);
    • 查询单个会话

      参数

      返回 Promise<ConversationItem>

      会话信息

      const res = await im.getConversation({ conversationId: 'account1|1|account2' });
      console.log(res.name, res.unreadCount);
    • 查询会话列表(分页)

      需要会话列表使用本地会话(initSdk 的 localConversation 默认即为 true)。

      参数

      返回 Promise<ConversationListResult>

      会话列表

      const res = await im.getConversationList({ offset: 0, limit: 20 });
      console.log(res.conversations, res.finished);
    • 查询会话的免打扰状态

      参数

      返回 Promise<MuteStatusResult>

      是否免打扰

      const res = await im.getConversationMuteStatus({ conversationId: 'account1|1|account2' });
      console.log(res.muted);
    • 查询免打扰配置

      返回 Promise<DndConfig>

      免打扰配置,未设置时返回空对象

      const res = await im.getDndConfig();
      console.log(res.dndOn, res.fromH, res.toH);
    • 查询好友申请列表(含待处理、已同意、已拒绝等状态)

      返回 Promise<FriendApplicationListResult>

      好友申请列表

      const res = await im.getFriendApplications();
      console.log(res.applications);
    • 查询好友列表(含昵称、头像与备注)

      返回 Promise<FriendListResult>

      好友列表

      const res = await im.getFriendList();
      console.log(res.friends);
    • 分页查询历史消息(可带锚点翻页、按类型过滤)

      参数

      返回 Promise<HistoryMessagesExResult>

      分页消息

      const page1 = await im.getHistoryMessagesEx({ conversationId: 'account1|1|account2', limit: 20 });
      const last = page1.messages[page1.messages.length - 1];
      const page2 = await im.getHistoryMessagesEx({
      conversationId: 'account1|1|account2', limit: 20, anchorMessageClientId: last.messageClientId
      });
    • 查询我加入的群数量

      返回 Promise<CountResult>

      群数量

      const res = await im.getJoinedTeamCount();
      console.log(res.count);
    • 查询我所在群里的成员(跨群)

      返回 Promise<JoinedTeamMemberListResult>

      成员列表

      const res = await im.getJoinedTeamMembers();
      console.log(res.members);
    • 查询登录状态

      返回 Promise<LoginStateResult>

      登录状态

      const state = await im.getLoginState();
      console.log(state.loggedIn, state.accountId);
    • 查询我作为管理员管理的群

      返回 Promise<TeamListResult>

      我管理的群

      const res = await im.getManagerTeams();
      console.log(res.teams);
    • 查询单聊已读回执(对方已读到的位置)

      需要应用开启已读回执能力。

      参数

      返回 Promise<P2PReadReceipt>

      已读回执

      const res = await im.getMessageReceipt({ conversationId: 'account1|1|account2' });
      console.log(res.timestamp);
    • 查询我作为群主创建的群

      返回 Promise<TeamListResult>

      我拥有的群

      const res = await im.getOwnerTeams();
      console.log(res.teams);
    • 查询我的单聊免打扰列表

      返回 Promise<MuteListResult>

      免打扰账号列表

      const res = await im.getP2PMessageMuteList();
      console.log(res.accountIds);
    • 查询我对某个账号的单聊免打扰设置

      参数

      返回 Promise<MuteStatusResult>

      是否免打扰

      const res = await im.getP2PMessageMuteMode({ accountId: 'account2' });
      console.log(res.muted);
    • 查询置顶会话列表

      返回 Promise<ConversationListResult>

      置顶会话列表

      const res = await im.getStickTopConversations();
      console.log(res.conversations);
    • 查询待处理的入群申请(别人申请加入我的群)

      返回 Promise<TeamApplicationListResult>

      入群申请列表

      const res = await im.getTeamApplications();
      console.log(res.applications);
    • 查询待处理的群邀请(别人邀请我入群)

      返回 Promise<TeamInvitationListResult>

      群邀请列表

      s const res = await im.getTeamInvitations(); console.log(res.invitations);

    • 查询未读的群申请/邀请数量

      返回 Promise<CountResult>

      未读数量

      const res = await im.getTeamJoinActionUnreadCount();
      console.log(res.count);
    • 查询我加入的群列表

      返回 Promise<TeamListResult>

      我的群列表

      const res = await im.getTeamList();
      res.teams.forEach(team => console.log(team.teamId, team.name));
    • 查询群成员列表(含昵称与头像)

      参数

      返回 Promise<TeamMembersResult>

      群成员列表

      const res = await im.getTeamMembers({ teamId: 'team_1' });
      console.log(res.members);
    • 查询我对某个群的免打扰设置

      参数

      返回 Promise<MuteStatusResult>

      是否免打扰

      const res = await im.getTeamMessageMuteMode({ teamId: 'team_1' });
      console.log(res.muted);
    • 按群 ID 批量查询群资料

      参数

      返回 Promise<TeamListResult>

      群列表

      const res = await im.getTeamsInfo({ teamIds: ['team_1', 'team_2'] });
      console.log(res.teams);
    • 查询会话内的话题列表

      参数

      返回 Promise<TopicListResult>

      话题列表

      实测当前应用该能力未开通(服务端返回 misuse),代码侧已就位。

      const res = await im.getTopicList({ conversationId: 'account1|1|account2' });
      console.log(res.topics);
    • 查询话题内的消息

      参数

      返回 Promise<GetHistoryMessagesResult>

      话题消息

      实测当前应用该能力未开通(服务端返回 misuse),代码侧已就位。

      const res = await im.getTopicMessages({ conversationId: 'account1|1|account2', topicId: 1 });
      console.log(res.messages);
    • 查询所有会话的未读消息总数(含免打扰会话)

      返回 Promise<TotalUnreadCountResult>

      总未读数

      const res = await im.getTotalUnreadCount();
      console.log(res.count);
    • 查询未读数

      返回 Promise<UnreadResult>

      未读数

      const unread = await im.getUnreadCount();
      console.log(unread.messages, unread.friendApplications, unread.teamInvitations);
    • 查询指定会话的未读消息总数

      参数

      返回 Promise<CountResult>

      未读总数

      const res = await im.getUnreadCountByIds({ conversationIds: ['account1|1|account2'] });
      console.log(res.count);
    • 查询用户资料

      默认读本地缓存(快),需要最新资料时传 fromCloud: true。

      参数

      返回 Promise<GetUserInfoResult>

      用户资料列表

      const res = await im.getUserInfo({ accountIds: ['account1', 'account2'], fromCloud: true });
      console.log(res.users);
    • 批量导入本地消息(只在本地展示,不发送到服务端)

      参数

      返回 Promise<ImportLocalMessagesResult>

      导入结果

      在当前内置的云信 SDK(10.11.0)上实测返回 parameter error/invalid parameter(补全 conversationId/senderId/receiverId/createTime 后仍被拒,疑似 SDK 侧限制);单条本地消息请用 insertLocalMessage,该接口已实测可用。

      const res = await im.importLocalMessages({
      accountId: 'account2',
      messages: [{ text: '欢迎语一' }, { text: '欢迎语二' }]
      });
      console.log('导入条数:', res.count);
    • 从文件导入本地消息(配合 exportMessages 使用)

      参数

      返回 Promise<void>

      无返回值

      导入会写入本地消息库;若担心重复数据,请先确认导出文件来源。

      await im.importMessages({ path: 'fs://...' });
      
    • 初始化

      重复调用会复用已创建的实例;调用前需已确认隐私政策,否则返回 PRIVACY_NOT_AGREED。

      参数

      返回 Promise<InitResult>

      初始化结果(含 App Key 与内置 SDK 版本号)

      await im.initSdk({ appKey: 'your app key', pushCertificateName: 'your certificate name' });
      
    • 插入本地消息(扩展版:可指定发送者/时间、是否更新会话最后一条)

      参数

      返回 Promise<SendMessageResult>

      插入结果

      await im.insertLocalMessageEx({ accountId: 'account2', text: '本地消息', lastMessageUpdateEnabled: false });
      
    • 查询电脑端在线时手机端是否继续接收推送

      返回 Promise<PushSwitchResult>

      推送开关状态

      const res = await im.isMobileOnDesktopOnline();
      console.log(res.enabled);
    • 查询离线推送是否开启

      返回 Promise<PushSwitchResult>

      推送开关状态

      const res = await im.isPushEnabled();
      console.log(res.enabled);
    • 申请加入群

      参数

      返回 Promise<void>

      无返回值

      await im.joinTeam({ teamId: 'team_1', postscript: '申请入群' });
      
    • 把成员移出群

      参数

      返回 Promise<void>

      无返回值

      await im.kickTeamMembers({ teamId: 'team_1', accountIds: ['account2'] });
      
    • 登录

      登录成功后即可打开消息页与聊天页,登录态、连接状态、新消息等变化通过事件回传。 Token 由业务服务端签发,过期或被踢下线后需要重新登录。

      参数

      返回 Promise<void>

      无返回值

      await im.login({ accountId: 'account1', token: 'token1' });
      
    • 退出登录

      返回 Promise<void>

      无返回值

      await im.logout();
      
    • 把会话标记为已读(清空该会话未读数)

      参数

      返回 Promise<void>

      无返回值

      await im.markConversationRead({ conversationId: 'account1|1|account2' });
      
    • 把群申请/邀请记录全部标记为已读

      返回 Promise<void>

      无返回值

      await im.markTeamJoinActionsRead();
      
    • 修改已发送的消息(文本、服务端扩展)

      参数

      返回 Promise<void>

      无返回值

      await im.modifyMessage({ messageClientId: 'xxx', text: '修改后的文本' });
      
    • 打开添加好友页

      返回 Promise<void>

      无返回值

      await im.openAddFriend();
      
    • 打开「我的 AI 数字人」页(需应用已开通 AI 能力)

      返回 Promise<void>

      无返回值

      await im.openAIUsers();
      
    • 打开黑名单页

      返回 Promise<void>

      无返回值

      await im.openBlockList();
      
    • 打开与某个账号的单聊

      参数

      返回 Promise<void>

      无返回值

      await im.openChat({ accountId: 'account2' });
      
    • 打开单聊会话设置页(置顶、免打扰、清空记录等)

      参数

      返回 Promise<void>

      无返回值

      await im.openChatSetting({ accountId: 'account1' });
      
    • 打开通讯录

      返回 Promise<void>

      无返回值

      await im.openContacts();
      
    • 打开会话分组管理页(新建/重命名/删除分组、调整分组内会话)

      返回 Promise<void>

      无返回值

      await im.openConversationGroups();
      
    • 打开会话列表

      返回 Promise<void>

      无返回值

      await im.openConversations();
      
    • 打开消息页

      消息页包含会话列表与通讯录两个页签,会话消息、群聊详情、添加好友等页面在消息页内继续打开。

      参数

      返回 Promise<void>

      无返回值

      await im.openMain({ tab: 0 });
      
    • 打开「我的资料」页(可编辑本人昵称、头像、签名等)

      返回 Promise<void>

      无返回值

      await im.openMineInfo();
      
    • 打开「我的机器人」页

      返回 Promise<void>

      无返回值

      await im.openMyBots();
      
    • 打开「我的群聊」页

      返回 Promise<void>

      无返回值

      await im.openMyTeams();
      
    • 打开个人资料页

      参数

      返回 Promise<void>

      无返回值

      await im.openProfile({ accountId: 'account2' });
      
    • 打开搜索页(搜索好友、群、聊天记录)

      返回 Promise<void>

      无返回值

      await im.openSearch();
      
    • 打开某个群的群聊

      参数

      返回 Promise<void>

      无返回值

      await im.openTeamChat({ teamId: 'team1' });
      
    • 打开群资料页

      参数

      返回 Promise<void>

      无返回值

      await im.openTeamInfo({ teamId: 'team_1' });
      
    • 打开群成员列表页

      参数

      返回 Promise<void>

      无返回值

      await im.openTeamMembers({ teamId: 'team_1' });
      
    • 打开群设置页(可跳转群资料、群成员、群管理)

      参数

      返回 Promise<void>

      无返回值

      await im.openTeamSetting({ teamId: 'team_1' });
      
    • 打开好友验证消息页

      返回 Promise<void>

      无返回值

      await im.openValidationMessages();
      
    • 置顶消息(需要应用开启置顶消息能力)

      参数

      返回 Promise<void>

      无返回值

      await im.pinMessage({ messageClientId: 'xxx' });
      
    • 发布我的自定义在线状态(供已订阅我的用户接收)

      参数

      返回 Promise<void>

      无返回值

      await im.publishCustomUserStatus({ statusType: 1, extension: '忙碌中' });
      
    • 退出群

      参数

      返回 Promise<void>

      无返回值

      await im.quitTeam({ teamId: 'team_1' });
      
    • 拒绝好友申请

      参数

      返回 Promise<void>

      无返回值

      await im.rejectFriendApplication({ accountId: 'account2', postscript: '暂时不方便' });
      
    • 拒绝入群申请(群主或管理员)

      参数

      返回 Promise<void>

      无返回值

      await im.rejectTeamApplication({ teamId: 'team_1', accountId: 'account2', postscript: '暂不开放' });
      
    • 拒绝群邀请

      参数

      返回 Promise<void>

      无返回值

      s await im.rejectTeamInvitation({ teamId: 'team_1', postscript: '暂时不加入' });

    • 把账号移出黑名单

      参数

      返回 Promise<void>

      无返回值

      await im.removeBlockUser({ accountId: 'account2' });
      
    • 删除收藏

      参数

      返回 Promise<RemoveCollectionsResult>

      删除结果

      在当前内置的云信 SDK(10.11.0)上实测返回 parameter error,调用形式与官方类型声明一致,疑似 SDK 侧限制。

      const res = await im.removeCollections({ collectionIds: ['xxx'] });
      console.log('删除条数:', res.removed);
    • 把会话移出分组

      参数

      返回 Promise<void>

      无返回值

      await im.removeConversationsFromGroup({ groupId: 'group_1', conversationIds: ['account1|1|account2'] });
      
    • 移除监听器

      返回 Promise<void>

    • 取消消息的快捷评论

      参数

      返回 Promise<void>

      无返回值

      实测当前应用未开通快捷评论能力(服务端返回 quick comment function disabled),代码侧已就位。

      await im.removeQuickComment({ messageClientId: 'xxx', index: 1 });
      
    • 删除单条群申请/邀请记录

      参数

      返回 Promise<void>

      无返回值

      await im.removeTeamJoinAction({ teamId: 'team_1', accountId: 'account2' });
      
    • 删除话题

      参数

      返回 Promise<void>

      无返回值

      实测当前应用该能力未开通(服务端返回 misuse),代码侧已就位。

      await im.removeTopics({ conversationId: 'account1|1|account2', topicIds: [1] });
      
    • 回复话题内的某条消息

      参数

      返回 Promise<SendMessageResult>

      发送结果

      话题能力需在云信控制台开通(实测当前应用返回 misuse)。

      await im.replyTopicMessage({ accountId: 'account2', text: '收到', topicId: 1, replyMessageClientId: 'xxx' });
      
    • 撤回消息(2 分钟内可撤回自己发送的消息)

      参数

      返回 Promise<void>

      无返回值

      await im.revokeMessage({ messageClientId: 'xxx' });
      
    • 云端消息搜索(按时间、会话、发送者、消息类型过滤)

      与 searchMessages 的区别:本接口直接查服务端漫游消息,参数更丰富;searchMessages 优先查本地。

      参数

      返回 Promise<SearchMessagesResult>

      命中的消息

      const res = await im.searchCloudMessages({
      keyword: '订单',
      messageTypes: [0],
      messageLimit: 20
      });
      console.log(res.messages);
    • 搜索消息(关键字匹配文本消息)

      默认在本地会话数据中搜索;本地搜索不可用时回退到云端搜索。

      参数

      返回 Promise<SearchMessagesResult>

      命中的消息

      const res = await im.searchMessages({ keyword: '订单', limit: 20 });
      console.log(res.total, res.messages);
    • 按群名称搜索群

      参数

      返回 Promise<TeamListResult>

      搜索到的群

      const res = await im.searchTeamByKeyword({ keyword: '项目' });
      console.log(res.teams);
    • 搜索群成员(可限定某个群,返回带昵称与头像)

      参数

      返回 Promise<TeamMembersResult>

      搜索到的群成员

      const res = await im.searchTeamMembers({ keyword: 'ymx1', teamId: 'team_1' });
      console.log(res.members);
    • 搜索用户(按昵称、账号或手机号)

      参数

      返回 Promise<SearchUserResult>

      搜索到的用户资料

      const res = await im.searchUser({ keyword: 'ymx1', searchAccountId: true });
      console.log(res.users);
    • 打开联系人选择页,返回用户选中的联系人

      用户在页面上直接返回(未选中)时返回错误码 USER_CANCELED。

      参数

      返回 Promise<SelectContactsResult>

      选中的联系人列表

      try {
      const res = await im.selectContacts({ selectLimit: 9, excludeAccountIds: ['self'] });
      console.log('选中:', res.accounts.map(it => it.accountId));
      } catch (err) {
      // err.code === 'USER_CANCELED' 表示用户取消
      }
    • 打开会话选择页,返回用户选中的会话

      用户在页面上直接返回(未选中)时返回错误码 USER_CANCELED。

      参数

      返回 Promise<SelectConversationsResult>

      选中的会话列表

      const res = await im.selectConversations({ excludeConversationIds: ['team_1'] });
      console.log('选中:', res.conversations.map(it => it.conversationId));
    • 打开群成员选择页,返回选中的账号 ID

      用户在页面上直接返回(未选中)时返回错误码 USER_CANCELED。

      参数

      返回 Promise<SelectTeamMembersResult>

      选中的账号 ID

      const res = await im.selectTeamMembers({ teamId: 'team_1', selectLimit: 5 });
      console.log(res.accountIds);
    • 发送音频消息

      filePath 支持 fs://、file:// 开头的本地音频或应用内的绝对路径;url 仅支持 http(s)://,发送后删除临时文件。

      参数

      返回 Promise<SendMessageResult>

      发送结果

      await im.sendAudioMessage({ accountId: 'account2', filePath: 'fs://file/record.aac', duration: 3 });
      
    • 发送通话消息(用于把通话结果展示在聊天记录里)

      参数

      返回 Promise<SendMessageResult>

      发送结果

      await im.sendCallMessage({
      accountId: 'account2', type: 1, channelId: 'channel-1', status: 1,
      durations: [{ accountId: 'account1', duration: 35 }]
      });
    • 发送自定义消息(附件内容由业务自定义,一般传 JSON 字符串)

      参数

      返回 Promise<SendMessageResult>

      发送结果

      await im.sendCustomMessage({ accountId: 'account2', text: '订单通知', rawAttachment: '{"orderId":"1"}' });
      
    • 发送文件消息

      filePath 支持 fs://、file:// 开头的本地文件或应用内的绝对路径(文件不存在时返回错误); url 仅支持 http://、https:// 开头的网络文件,插件会先下载,发送完成后删除临时文件。

      参数

      返回 Promise<SendMessageResult>

      发送结果

      await im.sendFileMessage({ accountId: 'account2', filePath: 'fs://file/doc/report.pdf' });
      
    • 发送图片消息

      filePath 支持 fs://、file:// 开头的本地图片或应用内的绝对路径(文件不存在时返回错误); url 仅支持 http://、https:// 开头的网络图片,插件会先下载,发送完成后删除临时文件。

      参数

      返回 Promise<SendMessageResult>

      发送结果

      await im.sendImageMessage({ accountId: 'account2', filePath: 'fs://file/photo.jpg' });
      await im.sendImageMessage({ accountId: 'account2', url: 'https://i.yimenyun.net/sys/2.jpg' });
    • 发送文本消息

      会话由 conversationId、单聊 accountId 或群 teamId 指定(三选一,conversationId 优先)。

      参数

      返回 Promise<SendMessageResult>

      发送结果

      const res = await im.sendTextMessage({ accountId: 'account2', text: '你好' });
      console.log(res.messageClientId);
    • 会话消息免打扰

      参数

      返回 Promise<void>

      无返回值

      await im.setConversationMute({ conversationId: 'account1|1|account2', muted: true });
      
    • 会话置顶

      参数

      返回 Promise<void>

      无返回值

      await im.setConversationSticky({ conversationId: 'account1|1|account2', sticky: true });
      
    • 设置免打扰(勿扰模式)配置

      参数

      返回 Promise<void>

      无返回值

      await im.setDndConfig({ dndOn: true, fromH: 22, fromM: 0, toH: 8, toM: 0, showDetail: false });
      
    • 设置好友备注名

      参数

      返回 Promise<void>

      无返回值

      await im.setFriendAlias({ accountId: 'account2', alias: '同事小张' });
      
    • 设置监听器,接收 eventName 事件名称,data 事件数据

      注意: 此接口为覆盖操作,仅保留最后一个监听器,最后的 listener 才能收到事件通知。

      参数

      • listener: (eventName: string, data: any) => void

      返回 Promise<void>

    • 设置电脑端在线时手机端是否继续接收推送

      参数

      返回 Promise<void>

      无返回值

      await im.setMobileOnDesktopOnline({ enabled: true });
      
    • 设置会话列表页的标题名称与 logo(不设置时不显示 logo,标题默认「会话」)

      参数

      返回 Promise<NavigationInfoData>

      生效后的配置

      await im.setNavigationInfo({ name: '消息', logo: 'https://your.cdn/logo.png' });
      await im.setNavigationInfo({ logo: '' }); // 去掉 logo
      await im.setNavigationInfo({ name: '' }); // 标题恢复默认「会话」
    • 开启或关闭离线推送

      关闭后不会再收到厂商离线推送,重新开启时无需重新登录。

      参数

      返回 Promise<void>

      无返回值

      await im.setPushEnabled({ enabled: false });
      
    • 设置群全员禁言

      开启后仅群主与管理员可以发言。

      参数

      返回 Promise<void>

      无返回值

      await im.setTeamChatBanned({ teamId: 'team_1', banned: true });
      
    • 设置单个群成员的禁言状态

      参数

      返回 Promise<void>

      无返回值

      await im.setTeamMemberChatBanned({ teamId: 'team_1', accountId: 'account2', banned: true });
      
    • 设置或取消群管理员(仅群主可操作)

      参数

      返回 Promise<void>

      无返回值

      await im.setTeamMemberRole({ teamId: 'team_1', accountIds: ['account2'], manager: true });
      
    • 转让群主(仅群主可操作)

      参数

      返回 Promise<void>

      无返回值

      await im.transferTeamOwner({ teamId: 'team_1', accountId: 'account2' });
      
    • 取消关注群成员

      参数

      返回 Promise<void>

      无返回值

      await im.unfollowTeamMembers({ teamId: 'team_1', accountIds: ['account2'] });
      
    • 取消置顶消息

      参数

      返回 Promise<void>

      无返回值

      await im.unpinMessage({ conversationId: 'account1|1|account2', messageClientId: 'xxx' });
      
    • 修改收藏的扩展字段

      参数

      返回 Promise<void>

      无返回值

      在当前内置的云信 SDK(10.11.0)上实测返回 parameter error,调用形式与官方类型声明一致,疑似 SDK 侧限制。

      await im.updateCollectionExtension({ collectionId: 'xxx', serverExtension: '{"tag":"重要"}' });
      
    • 修改会话分组(重命名或改扩展字段)

      参数

      返回 Promise<void>

      无返回值

      await im.updateConversationGroup({ groupId: 'group_1', name: '新名字' });
      
    • 更新置顶消息的扩展字段

      参数

      返回 Promise<void>

      无返回值

      需要控制台开通置顶消息能力(实测返回 PIN function disabled)。

      await im.updatePinMessage({ messageClientId: 'xxx', serverExtension: '{"tag":"重要"}' });
      
    • 修改本人资料,只传需要修改的字段

      修改成功后其他端与套件内界面会同步更新(如昵称、头像)。

      参数

      返回 Promise<void>

      无返回值

      await im.updateProfile({ name: '新昵称', sign: '个性签名' });
      
    • 修改我在群里的信息(群昵称、扩展字段)

      参数

      返回 Promise<void>

      无返回值

      await im.updateSelfTeamMemberInfo({ teamId: 'team_1', teamNick: '我在群里的昵称' });
      
    • 修改群资料(群名称、介绍、公告、头像)

      参数

      返回 Promise<void>

      无返回值

      await im.updateTeamInfo({ teamId: 'team_1', name: '新群名' });
      
    • 修改群成员昵称(群主或管理员)

      参数

      返回 Promise<void>

      无返回值

      await im.updateTeamMemberNick({ teamId: 'team_1', accountId: 'account2', teamNick: '小助手' });
      
    • 修改话题名称或扩展字段

      参数

      返回 Promise<void>

      无返回值

      实测当前应用该能力未开通(服务端返回 misuse),代码侧已就位。

      await im.updateTopic({ conversationId: 'account1|1|account2', topicId: 1, topicName: '新话题' });
      
    • 语音转文字(需开通 AI 能力)

      参数

      返回 Promise<VoiceToTextResult>

      识别文本

      const res = await im.voiceToText({ filePath: 'fs://file/record.aac', duration: 5 });
      console.log(res.text);