English | 简体中文
The full method list of imbot_sdk.ImBotClient. All req / resp types are
protobuf messages under imbot_sdk.pb. Return-value conventions:
Methods that return only an error code return an int (ClientErrorCode.*,
0 means success).
Methods that return data return (code, resp), where resp is None on
failure.
from imbot_sdk import ImBotClient , ClientErrorCode , Conversation
from imbot_sdk .pb import appmessages_pb2 as pb # messages / conversations / users / groups / files
from imbot_sdk .pb import connect_pb2 as cpb # connection-layer frames
from imbot_sdk .pb import chatroom_pb2 as chatpb # chatroom
from imbot_sdk .pb import rtcroom_pb2 as rtcpb # RTC
Construction & attributes
Member
Description
Default
ImBotClient(address, app_key)
Create a client
—
client.platform
Platform identifier
"Bot"
client.auto_reconnect
Auto-reconnect on disconnect
True
client.user_id
Set after a successful connect
""
client.disconnect_callback
func(code, DisconnectMsgBody)
None
client.on_message_callback
func(DownMsg) raw downstream message
None
client.on_stream_msg_callback
func(StreamDownMsg) stream message
None
Method
Returns
connect(token)
(code, ConnectAckMsgBody)
reconnect()
(code, ConnectAckMsgBody)
disconnect()
—
logout()
—
ping()
code
get_state()
ConnectState
add_connection_status_change_listener(l)
—
Method
Returns
publish(method, target_id, data)
(code, PublishAckMsgBody)
query(method, target_id, data)
(code, QueryAckMsgBody)
query_confirm(index)
code
write_message(data)
—
Method
Returns
send_message(conversation, up_msg)
(code, PublishAckMsgBody)
build_up_msg(content, client_uid="", **kw)
pb.UpMsg (convenience wrapper)
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
Method
Returns
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
Method
Returns
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)
Method
Returns
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)
Method
Returns
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 returns RTC_JOIN_ALREADY_IN_ROOM (16002) when already in the
room; resp is still valid in that case.
Method
Returns
get_file_cred(QryFileCredReq)
(code, QryFileCredResp)
Subclass these base classes and override the callbacks you need (all default to
no-ops), then register via 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