常见问题解答
SDK错误码说明
返回值 | 说明 | 建议 |
---|---|---|
10000 | 请求参数错误 | 检查Init接口corpid、secret参数;检查GetChatData接口limit参数是否未填或大于1000;检查GetMediaData接口sdkfileid是否为空,indexbuf是否正常 |
10001 | 网络请求错误 | 检查是否网络有异常、波动;检查使用代理的情况下代理参数是否设置正确的用户名与密码 |
10002 | 数据解析失败 | 建议重试请求。若仍失败,可以反馈给企业微信进行查询,请提供sdk接口参数与调用时间点等信息 |
10003 | 系统调用失败 | GetMediaData调用失败,建议重试请求。若仍失败,可以反馈给企业微信进行查询,请提供sdk接口参数与调用时间点等信息 |
10004 | 已废弃 | 目前不会返回此错误码 |
10005 | fileid错误 | 检查在GetMediaData接口传入的sdkfileid是否正确 |
10006 | 解密失败 | 请检查是否先进行base64decode再进行rsa私钥解密,再进行DecryptMsg调用 |
10007 | 已废弃 | 目前不会返回此错误码 |
10008 | DecryptMsg错误 | 建议重试请求。若仍失败,可以反馈给企业微信进行查询,请提供sdk接口参数与调用时间点等信息 |
10009 | ip非法 | 请检查sdk访问外网的ip是否与管理端设置的可信ip匹配,若不匹配会返回此错误码 |
10010 | 请求的数据过期 | 用户欲拉取的数据已过期,仅支持近5天内的数据拉取 |
10011 | ssl证书错误 | 使用openssl版本sdk,校验ssl证书失败 |
Q&A
A:不需要,首次new sdk后,可以在多次的拉取会话记录/拉取媒体数据,使用同一个sdk进行处理.
A: corpid信息在企业微信管理端--我的企业--企业信息查看,secret在企业微信管理端--管理工具--会话内容存档查看
A:通过seq跟limit来确认拉取消息的范围,每次拉取的是seq+1开始的limit条消息
A:企业微信只提供5天内的消息拉取,即:从发起拉取的时候往前推5天的消息。如果传入的seq不属于5天内,则从5天内的第一个消息的seq开始拉取。每次最多提供1000条消息的拉取
A:通过参数来设置代理进行拉取。支持http代理与sock5代理
A:必须填写,企业微信会对ip地址的访问进行限制。对于使用方而言,需要设置其公网ip,企业微信后台收到的请求,会校验调用方的ip与管理端填写的ip是否匹配。
A:管理端填入RSA2048产生的公钥,后续使用pkcs1进行加密。每次上传公钥都会生成一个公钥版本号,在后续的拉取消息接口中,每条消息都会指明使用的加密公钥版本号。
A:企业微信对待存储的消息使用企业最新上传的公钥进行加密,企业自行使用对应版本的私钥进行解密。对json消息体内的encrypt_random_key,base64处理后首先使用对应版本的私钥进行解密得到字符串内容,将字符串内容与消息体内的encrypt_chat_msg,使用sdk的接口DecryptData,得到真正的明文消息。
A:建议使用openssl 来生成rsa pkcs1 2048格式的公私钥。例如可使用:openssl genrsa -out private.pem 2048 来生成私钥,并使用openssl rsa -in private.pem -pubout -out public.pem从私钥来产生公钥。
A:建议将so放置在系统路径:LD_LIBRARY_PATH指定的路径内,或者将so所在的目录加入到LD_LIBRARY_PATH的路径范围内。
A:如果是单聊:from表示消息发送方、tolist内只有一个消息接收方,roomid为空;如果是群聊:from表示消息发送方,tolist为群内其他成员id,roomid非空;无论消息的发送方还是接收方,如果是本企业成员,则为userid,否则为exteranalopenid
A:如果是金融版企业成员,则所有会话均会存储,包括发送给本企业或者外部企业/微信的会话消息;如果是非本企业的外部用户与本企业成员会话,则只有外部用户同意了当前会话的存储,才会进行存储(不同意存储也可以进行会话)。外部用户的同意,以会话为粒度(单聊或群聊)。
A:如果外部用户同时与多个金融版企业成员所在的群聊进行会话,那么外部用户会收到不同金融版企业的存储邀请,外部用户同意了哪个金融版企业,会话消息才存储到哪个金融版企业。
A:如果出现拉取会话记录、媒体数据失败的情况,建议进行相同参数下一定次数的请求重试。
A:图片是jpg格式、语音是amr格式、视频是mp4格式、文件格式类型包括在消息体内,表情分为动图与静态图,在消息体内定义。
A:目前提供c版本的so以及java版本的so。Java版本使用jni的方式来进行调用。
A:对于系统内置的表情,是以文本消息的形式发送的,存储的也是文本消息
A:是的,类似会话记录,也只能拉取5天内的媒体消息内容
A:目前提供了常用的10+类消息类型的导出,后续如果有新消息类型的产生,也会及时的进行新消息类型的导出。对于目前不识别的消息类型,统一使用:【未知消息类型】的文本消息类型来表示。
A:目前是可以的,支持重入,相同的seq与limit可以多次拉取,但是有频率限制控制。如果过快的拉取,可能会返回失败。
A:sdk支持linux跟windows环境。
A:通过sdk接口拉取的会话记录为json格式,使用私钥解密后调用sdk接口获取到的消息明文也是json格式。
A:管理端上传秘钥进行开通金融版功能后,企业成员的客户端会被强制要求同意使用金融版。同意使用的企业成员,发出的消息会开始被进行存储。
A:请确认下同一个媒体文件,是否是追加写。如果每次覆盖,则得到的文件是最后一个分片的内容。
A:无论对于拉取会话记录,还是拉取媒体消息。如果返回码是10001-10003的错误码,建议原参数重试。
A:在SDK的头文件内,有错误码列表以及错误码含义解释。
A:10001是网络错误,请校验下是否使用代理访问;是否放开了80 443端口。
A:通过GetChatData接口拉取的会话数据,若返回的json结构中,chatdata为空,则表明已拉取完成会话数据。
A:请检查是否修改了sdk的包名。
A:请检查初始化接口中corpid/secret是否填写正确;请检查是否每次都进行了sdk的初始化与销毁,不必每次进行sdk的初始化与销毁。
修改于 2022-12-02 02:22:20