微信小程序 腾讯IM 单发单聊消息

  • 管理员向帐号发消息,接收方看到消息发送者是管理员。
  • 管理员指定某一帐号向其他帐号发消息,接收方看到发送者不是管理员,而是管理员指定的帐号。
  • 该接口不会检查发送者和接收者的好友关系(包括黑名单),同时不会检查接收者是否被禁言。
  • 使用服务端集成 REST API 发送单聊消息时,存在是否将消息同步至发送方(管理员帐号或者由管理员指定的某帐号)问题,同步方式包括在线终端和漫游,REST API 提供 SyncOtherMachine 参数用于说明是否进行同步,详细使用方式参见下文请求包示例。
  • https://console.tim.qq.com/v4/openim/sendmsg?sdkappid=88888888&identifier=admin&usersig=xxx&random=99999999&contenttype=json
  • 请求参数说明

    下表仅列出调用本接口时涉及修改的参数及其说明,更多参数详情请参考 REST API 简介

    参数说明
    v4/openim/sendmsg请求接口
    sdkappid创建应用时即时通信 IM 控制台分配的 SDKAppID
    identifier必须为 App 管理员帐号,更多详情请参见 App 管理员
    usersigApp 管理员帐号生成的签名,具体操作请参见 生成 UserSig
    random请输入随机的32位无符号整数,取值范围0 - 4294967295

    最高调用频率

    200次/秒。

    请求包示例

    本文以发送文本消息为例,如需发送其他类型的消息,只需将 MsgBody 字段改成相应消息类型即可,更多详情请参见 消息格式描述

    管理员向其它帐号发消息

    !若不希望将消息同步至 From_Account,则 SyncOtherMachine 填写2。 若希望将消息同步至 From_Account,则 SyncOtherMachine 填写1。

    {
        "SyncOtherMachine": 2, // 消息不同步至发送方
        "To_Account": "lumotuwe2",
        "MsgLifeTime":60, // 消息保存60秒
        "MsgRandom": 1287657,
        "MsgTimeStamp": 1557387418,
        "MsgBody": [
            {
                "MsgType": "TIMTextElem",
                "MsgContent": {
                    "Text": "hi, beauty"
                }
            }
        ]
    }
    

    管理员指定某一帐号向其它帐号发送消息,同时设置离线推送信息,并且不将消息同步至 From_Account

    !若不希望将消息同步至 From_Account,则 SyncOtherMachine 填写2。

    {
        "SyncOtherMachine": 2,
        "From_Account": "lumotuwe1",
        "To_Account": "lumotuwe2",
        "MsgLifeTime":3600, // 消息保存一小时
        "MsgRandom": 1287657,
        "MsgTimeStamp": 1557387418,
        "MsgBody": [
            {
                "MsgType": "TIMTextElem",
                "MsgContent": {
                    "Text": "hi, beauty"
                }
            }
        ],
        "OfflinePushInfo": {
            "PushFlag": 0,
            "Desc": "离线推送内容",
            "Ext": "这是透传的内容",
            "AndroidInfo": {
                "Sound": "android.mp3"
            },
            "ApnsInfo": {
                "Sound": "apns.mp3",
                "BadgeMode": 1, // 这个字段缺省或者为 0 表示需要计数,为 1 表示本条消息不需要计数,即右上角图标数字不增加
                "Title":"apns title", // apns title
                "SubTitle":"apns subtitle", // apns subtitle
                "Image":"www.image.com" // image url
            }
        }
    }
    

    管理员指定某一帐号向另一帐号发送消息,同时将消息同步到 From_Account 发送方终端

    !若希望将消息同步至 From_Account,则 SyncOtherMachine 填写1。

    {
        "SyncOtherMachine": 1, // 消息同步至发送方
        "From_Account": "lumotuwe1",
        "To_Account": "lumotuwe2",
        "MsgRandom": 1287657,
        "MsgTimeStamp": 1557387418,
        "MsgBody": [
            {
                "MsgType": "TIMTextElem",
                "MsgContent": {
                    "Text": "hi, beauty"
                }
            }
        ]
    }
    

    请求包字段说明

    字段类型属性说明
    SyncOtherMachineInteger选填1:把消息同步到 From_Account 在线终端和漫游上;
    2:消息不同步至 From_Account;
    若不填写默认情况下会将消息存 From_Account 漫游
    From_AccountString选填消息发送方 UserID(用于指定发送消息方帐号)
    To_AccountString必填消息接收方 UserID
    MsgLifeTimeInteger选填消息离线保存时长(单位:秒),最长为7天(604800秒)
    • 若设置该字段为0,则消息只发在线用户,不保存离线
    • 若设置该字段超过7天(604800秒),仍只保存7天
    • 若不设置该字段,则默认保存7天
    MsgRandomInteger必填消息随机数,由随机函数产生,用于后台定位问题
    MsgTimeStampInteger选填消息时间戳,UNIX 时间戳(单位:秒)
    MsgBodyObject必填消息内容,具体格式请参考 消息格式描述(注意,一条消息可包括多种消息元素,MsgBody 为 Array 类型)
    MsgTypeString必填TIM 消息对象类型,目前支持的消息对象包括:TIMTextElem(文本消息),TIMFaceElem(表情消息),TIMLocationElem(位置消息),TIMCustomElem(自定义消息)
    MsgContentObject必填对于每种 MsgType 用不同的 MsgContent 格式,具体可参考 消息格式描述
    OfflinePushInfoObject选填离线推送信息配置,具体可参考 消息格式描述

    应答包体示例

  • 正常应答
  • {
        "ActionStatus": "OK", 
        "ErrorInfo": "", 
        "ErrorCode": 0, 
        "MsgTime": 1497238162,
        "MsgKey": "89541_2574206_1572870301"
    }
    
  • 异常应答
  • {
        "ActionStatus": "FAIL", 
        "ErrorInfo": "Fail to Parse json data of body, Please check it", 
        "ErrorCode": 90001
    }
    

    应答包字段说明

    字段类型说明
    ActionStatusString请求处理的结果,OK 表示处理成功,FAIL 表示失败
    ErrorCodeInteger错误码,0表示成功,非0表示失败
    ErrorInfoString错误信息
    MsgTimeInteger消息时间戳,UNIX 时间戳
    MsgKeyString消息唯一标识,用于撤回。长度不超过50个字符

    错误码说明

    除非发生网络错误(例如502错误),否则该接口的 HTTP 返回码均为200。真正的错误码,错误信息是通过应答包体中的 ErrorCode、ErrorInfo 来表示的。 公共错误码(60000到79999)参见 错误码 文档。 本 API 私有错误码如下:

    错误码描述
    20001请求包非法
    20002UserSig 或 A2 失效
    20003消息发送方或接收方 UserID 无效或不存在,请检查 UserID 是否已导入即时通信 IM
    20004网络异常,请重试
    20005服务器内部错误,请重试
    20006触发发送单聊消息之前回调,App 后台返回禁止下发该消息
    90001JSON 格式解析失败,请检查请求包是否符合 JSON 规范
    90002JSON 格式请求包中 MsgBody 不符合消息格式描述,或者 MsgBody 不是 Array 类型,请参考 TIMMsgElement 对象 的定义
    90003JSON 格式请求包体中缺少 To_Account 字段或者 To_Account 字段不是 String 类型
    90005JSON 格式请求包体中缺少 MsgRandom 字段或者 MsgRandom 字段不是 Integer 类型
    90006JSON 格式请求包体中 MsgTimeStamp 字段不是 Integer 类型
    90007JSON 格式请求包体中 MsgBody 类型不是 Array 类型,请将其修改为 Array 类型
    90009请求需要 App 管理员权限
    90010JSON 格式请求包不符合消息格式描述,请参考 TIMMsgElement 对象 的定义
    90012To_Account 没有注册或不存在,请确认 To_Account 是否导入即时通信 IM 或者是否拼写错误
    90026消息离线存储时间错误(最多不能超过7天)
    90031JSON 格式请求包体中 SyncOtherMachine 字段不是 Integer 类型
    90044JSON 格式请求包体中 MsgLifeTime 字段不是 Integer 类型
    91000服务内部错误,请重试
    90992服务内部错误,请重试;如果所有请求都返回该错误码,且 App 配置了第三方回调,请检查 App 服务器是否正常向即时通信 IM 后台服务器返回回调结果
    93000JSON 数据包超长,消息包体请不要超过 8k
    90048请求的用户帐号不存在

    接口调试工具

    通过 REST API 在线调试工具 调试本接口。

    参考

    批量发单聊消息(v4/openim/batchsendmsg) 查询单聊消息(v4/openim/admin_getroammsg) 撤回单聊消息(v4/openim/admin_msgwithdraw

    可能触发的回调

  • 发单聊消息之前回调
  • 发单聊消息之后回调
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值