收藏
回答

企信机器人发送图片报md5不匹配

问题类型 API/组件名称 终端类型 微信版本 基础库版本
Bug 企信机器人 工具 2.8.15.2044 没找到

linux中将img.jpg提取md5编码

        test1="$(cat 1.jpg | md5sum)"

linux中将img.jpg提取base64编码

    test2="$(cat 1.jpg | base64)"

然后使用curl命令传出两个值之后发现,报错

请问有没有什么示例之类的可供参考

回答关注问题邀请回答
收藏

8 个回答

  • 企业微信运营专员-千夜
    企业微信运营专员-千夜
    2019-10-25

    您好,是代码问题,需要检查下,{
        "msgtype": "image",
        "image": {
            "base64": "iVBORw0KGgoAAAANSUhEUgAAAIoAAACKCAYAAAB1h9JkAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAF1SURBVHhe7dYxAYAwEMDASgFR4LTYeyQ0Am44BxmyrmcPnAiFZN3vN3AiFBKhkAiFxMySCIVEKCRCITGzJEIhEQqJUEjMLIlQSIRCIhQSM0siFBKhkAiFxMySCIVEKCRCITGzJEIhEQqJUEjMLIlQSIRCIhQSM0siFBKhkAiFxMySCIVEKCRCITGzJEIhEQqJUEjMLIlQSIRCIhQSM0siFBKhkAiFxMySCIVEKCRCITGzJEIhEQqJUEjMLIlQSIRCIhQSM0siFBKhkAiFxMySCIVEKCRCITGzJEIhEQqJUEjMLIlQSIRCIhQSM0siFBKhkAiFxMySCIVEKCRCITGzJEIhEQqJUEjMLIlQSIRCIhQSM0siFBKhkAiFxMySCIVEKCRCITGzJEIhEQqJUEjMLIlQSIRCIhQSM0siFBKhkAiFxMySCIVEKCRCITGzJEIhEQqJUEjMLIlQSIRCIhQSM0siFBKhkAiFxMySCIVEKCRCIdjzA5oVKWxK2iiRAAAAAElFTkSuQmCC",
            "md5": "1bf0d144aa88eee8e49462fd2b644b06"
        }
    }

    2019-10-25
    有用
    回复 11
    • 10034
      10034
      2019-11-22
      base64这个参数里面不要包含图片头-> data:image/jpg;base64, 否则就会报错301019这个错,这个可以在文档备注一下,开发的时候容易错。
      2019-11-22
      1
      回复
    • Liu.SQ
      Liu.SQ
      2019-12-09
      我并没有加data:image/jpg;base64,但也还是报media md5 not match,这哪里错了呢
      2019-12-09
      回复
    • P.C.
      P.C.
      2019-12-10回复Liu.SQ
      你看一下我发的文字,看看能不能帮到你。
      2019-12-10
      回复
    • P.C.
      P.C.
      2019-12-10回复10034
      的确,文档里写的不是很清楚,摸索了几次才明白。
      2019-12-10
      回复
    • DriveCar
      DriveCar
      2020-01-13
      我也是没有包含图片头还是报这个错
      2020-01-13
      回复
    查看更多(6)
  • SKY
    SKY
    2020-03-21

    PHP获取上传图片base64及md5示例代码如下:

    $file = file_get_contents($_FILES['file']['tmp_name']);
    $md5 = md5($file);
    $base64 = base64_encode($file);
    
    2020-03-21
    有用 1
    回复 2
    • 沐白
      沐白
      2021-08-10
      这样还是报错
      2021-08-10
      回复
    • 沐白
      沐白
      2021-08-10
      好了
      2021-08-10
      回复
  • Like
    Like
    2022-03-24

    java解决media md5 for match 301019

    2022-03-24
    有用
    回复
  • 我想要一只🐶
    我想要一只🐶
    2020-03-26

    弄好没?我也遇到了

    2020-03-26
    有用
    回复 1
    • 国强
      国强
      2020-03-29
      我也遇到了
      2020-03-29
      回复
  • DriveCar
    DriveCar
    2020-01-13

    我用在线md5加密、转base64的工具转换后,在发送post请求还是提示media md5

    not match

    2020-01-13
    有用
    回复
  • Minke
    Minke
    2020-01-09

    1、如果数据库存的是图片的二进制流

    byte[] bytes1 = (Byte[])图片的二进制流;

    byte[] retVal = md5.ComputeHash(bytes1);

    StringBuilder sb = new StringBuilder();

    for (int j = 0; j < retVal.Length; j++)


         sb.Append(retVal[j].ToString("x2"));


    string md5Date = sb.ToString();

    byte[] bytes = (Byte[])ds.Tables[0].Rows[i]["Picture"];

    var base64 = Convert.ToBase64String(bytes);

                           

    2、如果数据库存的时网图链接

     WebRequest webReq = WebRequest.Create("图片链接");

     WebResponse webRes = webReq.GetResponse();

     Stream stream = webRes.GetResponseStream();

    获取网络流后

    1、 转为byte[]

    2、 MD5加密

    3、 转为base64

    这里也可以直接为流进行MD5加密 但是得注意IO流是否改变 个人觉得用byte[]加密跟转换时挺好的


    3、组合参数

    string reqbodyImage = "{"

                               + "    \"msgtype\":\"image\","

                               + "    \"image\": {"

                               + "    \"base64\": \"" + base64 + "\","

                               + "    \"md5\": \"" + md5Date + "\""

                               + "}"

                            + "}";


    如果是本地图片的话有个fileStream可以使用 贴上你的本地链接就行了 同样是转为IO流

    发送请求就不需要贴代码了吧、、、、

    2020-01-09
    有用
    回复 1
    • Minke
      Minke
      2020-01-09
      上面是Winform(C#)访问的  但我觉得应该都一样 补上MD5的生成忘写了
      MD5 md5 = new MD5CryptoServiceProvider();
      2020-01-09
      回复
  • 高峰
    高峰
    2020-01-03

    您好,请问您最后解决了吗?我也遇到这个问题了

    2020-01-03
    有用
    回复 1
    • Minke
      Minke
      2020-01-06
      兄弟搞出来么  我也遇到这个问题了
      2020-01-06
      回复
  • P.C.
    P.C.
    2019-12-10

    我刚才尝试了几次发图片功能,基本明确了机器人发图片的步骤:

    1,准备好要发送的图片,如a.jpg。

    2,用md5工具计算a.jpg图片的md5值,如【adecc85e1378a6110bb6465f60f1f416】

    (我是用windows命令行计算的,其他工具都可,命令行代码【certutil -hashfile a.jpg md5】)

    2,用base64工具将图片转成base64的编码字符串,形如【data:image/jpeg;base64,iVBORaaasdaewqeeeeeeeeeeeewwwwwwwwweeewq......】

    3,填写json参数。

    参数base64填写去掉开头【data:image/jpeg;base64,】的编码字符串,

    如【iVBORaaasdaewqeeeeeeeeeeeewwwwwwwwweeewq......】。

    参数md5填写图片的md5值,

    如【adecc85e1378a6110bb6465f60f1f416】。

    4,向你的webhook地址发送请求。done。


    我也是今天才开始研究企业微信的,互相帮助。

    2019-12-10
    有用
    回复
登录 后发表内容
问题标签