Skip to content

Latest commit

 

History

History
166 lines (140 loc) · 6.86 KB

File metadata and controls

166 lines (140 loc) · 6.86 KB

API 参考

English | 简体中文

imbot_sdk.ImBotClient 的完整方法清单。所有 req / resp 类型均为 imbot_sdk.pb 下的 protobuf 消息。返回值约定:

  • 仅返回错误码的方法返回 intClientErrorCode.*0 表示成功)
  • 返回数据的方法返回 (code, resp)resp 在失败时为 None
from imbot_sdk import ImBotClient, ClientErrorCode, Conversation
from imbot_sdk.pb import appmessages_pb2 as pb       # 消息/会话/用户/群/文件
from imbot_sdk.pb import connect_pb2 as cpb          # 连接层帧
from imbot_sdk.pb import chatroom_pb2 as chatpb      # 聊天室
from imbot_sdk.pb import rtcroom_pb2 as rtcpb        # RTC

构造与属性

成员 说明 默认
ImBotClient(address, app_key) 创建客户端
client.platform 平台标识 "Bot"
client.auto_reconnect 断线自动重连 True
client.user_id 连接成功后写入 ""
client.disconnect_callback func(code, DisconnectMsgBody) None
client.on_message_callback func(DownMsg) 原始下行消息 None
client.on_stream_msg_callback func(StreamDownMsg) 流式消息 None

连接与状态

方法 返回
connect(token) (code, ConnectAckMsgBody)
reconnect() (code, ConnectAckMsgBody)
disconnect()
logout()
ping() code
get_state() ConnectState
add_connection_status_change_listener(l)

底层收发

方法 返回
publish(method, target_id, data) (code, PublishAckMsgBody)
query(method, target_id, data) (code, QueryAckMsgBody)
query_confirm(index) code
write_message(data)

消息

方法 返回
send_message(conversation, up_msg) (code, PublishAckMsgBody)
build_up_msg(content, client_uid="", **kw) pb.UpMsg(便捷封装)
add_message_listener(l)
sync_msgs(SyncMsgReq) (code, DownMsgSet)
add_msg_exset(MsgExt) code
qry_history_msgs(QryHisMsgsReq) (code, DownMsgSet)
qry_first_unread_msg(QryFirstUnreadMsgReq) (code, DownMsg)
del_his_msgs(DelHisMsgsReq) code
recall_msg(RecallMsgReq) (code, QueryAckMsgBody)
modify_msg(ModifyMsgReq) (code, QueryAckMsgBody)
mark_read_msg(MarkReadReq) (code, QueryAckMsgBody)
qry_his_msgs_by_ids(target_id, QryHisMsgByIdsReq) (code, DownMsgSet)
qry_read_msg_detail(QryReadDetailReq) (code, QryReadDetailResp)
clean_his_msgs(CleanHisMsgReq) code
qry_merged_msgs(msg_id, QryMergedMsgsReq) (code, DownMsgSet)
batch_translate(TransReq) (code, TransReq)
msg_search(SearchMsgsReq) (code, SearchMsgsResp)
msg_global_search(SearchMsgsReq) (code, BatchSearchMsgsResp)
set_top_msg(TopMsgReq) code
del_top_msg(TopMsgReq) code
sub_stream_msg(SubStreamMsgsReq) code

会话

方法 返回
add_conversation_change_listener(l)
get_conversation(QryConverReq) (code, Conversation)
get_total_unread_count(QryTotalUnreadCountReq) (code, QryTotalUnreadCountResp)
get_conversations(QryConversationsReq) (code, QryConversationsResp)
get_pc_conversations(QryConversationsReq) (code, QryConversationsResp)
get_top_conversations(QryTopConversReq) (code, QryConversationsResp)
clear_unread_count(ClearUnreadReq) code
clear_total_unread_count(QryTotalUnreadCountReq) code
get_mention_msgs(QryMentionMsgsReq) (code, QryMentionMsgsResp)
sync_conversations(QryConversationsReq) (code, QryConversationsResp)
set_mute(UndisturbConversReq) code
set_conversation_top(ConversationsReq) code
delete_conversations(ConversationsReq) code
set_unread(ConversationsReq) code
create_conversation_info(Conversation) code
create_conversation_tag(tag_id, tag_name) code
destroy_conversation_tag(tag_id) code
update_conversation_tag_name(tag_id, tag_name) code
get_conversation_tag_list() (code, UserConverTags)
add_conversations_to_tag(TagConvers) code
remove_conversations_from_tag(TagConvers) code

用户 / 好友 / 状态

方法 返回
fetch_user_info(user_id) (code, UserInfo)
fetch_group_info(group_id) (code, GroupInfo)
fetch_friend_info(friend_user_id) (code, FriendInfo)
get_user_status(UserIdsReq) (code, UserStatusList)
subscribe_user_status(SubUsersReq) (code, UserStatusList)
unsubscribe_user_status(SubUsersReq) code
pub_user_status(UpMsg) (code, PublishAckMsgBody)
set_user_undisturb(UserUndisturb) code
get_user_undisturb() (code, UserUndisturb)

聊天室

方法 返回
join_chatroom(chatroom_id) code
join_chatroom_with_prev_count(chatroom_id, n) code
join_chatroom_with_options(chatroom_id, n, is_auto_create) code
join_chatroom_auto_create(chatroom_id, is_auto_create) code
quit_chatroom(chatroom_id) code
send_chatroom_msg(chatroom_id, up_msg) (code, PublishAckMsgBody)
set_attributes(chatroom_id, dict) (code, ChatAttBatchResp)
remove_attributes(chatroom_id, keys) (code, ChatAttBatchResp)
sync_chatroom_msgs(SyncChatroomReq) (code, SyncChatroomMsgResp)
sync_chatroom_exts(SyncChatroomReq) (code, SyncChatroomAttResp)
add_chat_att(target_id, ChatAttReq) (code, ChatAttResp)
del_chat_att(target_id, ChatAttReq) (code, ChatAttResp)

RTC

方法 返回
create_rtc_room(RtcInviteReq) (code, RtcRoom)
destroy_rtc_room(room_id) code
join_rtc_room(RtcInviteReq) (code, RtcRoom)
quit_rtc_room(room_id) code
qry_rtc_room(room_id) (code, RtcRoom)
rtc_room_ping(room_id) code
rtc_invite(RtcInviteReq) (code, RtcAuth)
qry_rtc_member_rooms() (code, RtcMemberRooms)
rtc_hangup(room_id) code

join_rtc_room 在已在房间内时返回 RTC_JOIN_ALREADY_IN_ROOM(16002),此时 resp 仍然有效。

文件

方法 返回
get_file_cred(QryFileCredReq) (code, QryFileCredResp)

监听器

继承以下基类并覆写所需回调(默认均为空实现),通过 add_*_listener 注册:

  • ConnectionStatusChangeListener.on_status_change(status, code)
  • MessageListener.on_message_receive / on_message_recall / on_message_update / on_message_delete / on_message_clear / on_message_reaction_add / on_message_reaction_remove / on_message_set_top
  • ConversationChangeListener.on_conversation_info_add / on_conversation_info_update / on_conversation_info_delete / on_total_unread_message_count_update