收藏
回答

多个同一类型的自定义菜单,如pic_photo_or_album,要实现不同的功能该如何实现?

事件类型的菜单,操作的时候会推送至少两条消息到开发服务器,如果一次性发N张图片,就会有1条事件消息+N条图片消息。

我本来的思路是 缓存{EventKey+FromUserName+CreateTime: SendPicsInfo.Count}, 然后后续的图片消息通过读取缓存EventKey+FromUserName+CreateTime,来判断对应的image消息执行哪个功能。

这个已经实现了。

但是坑来了。

坑一:

事件消息的CreateTime和image消息的CreateTime不一定一样。

这个好解决,打不了缓存名字不带CreateTime,并设置缓存5秒过期;

坑二:

在ios终端发出的事件消息中,SendPicsInfo.Count是0!据说这是微信的Bug???

这个坑不好填,但临时方案也可以凑合。

最坑的是下面这个:

事件消息和image消息的顺序不一定,也就是说可能image消息先于事件消息推过来。这个要命了。

到目前为止我还没任何想法。

希望有哪位大神帮忙来填一下。。。


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

3 个回答

  • 小杨
    小杨
    2020-10-26

    我也是遇到这个问题,感觉很坑,我的需求是调用pic_photo_or_album,然后去调用阿里的人脸识别,对比下阿里的接口,感觉微信的接口就不像是大厂的样子


    2020-10-26
    有用
    回复
  • Robin
    Robin
    发表于移动端
    2020-08-21
    老实说,这么多时间过去,么有一个来答复一下的,我还是挺失望的。要么是这里的人比较初级,要么是大神没时间照顾。 我大体浏览了一些帖子,实在是觉得前者可能性大一点
    2020-08-21
    有用
    回复 2
    • Robin
      Robin
      2020-08-22
      https://q.cnblogs.com/q/80209/
      在这篇博客中有提到同样的问题,我看上下文根本就没有人提出解决方案,特别是在两条消息并没有明确的顺序的时候,还是没有好的解决方案。
      我自己已经考虑了一个解决方案,不是很完美,但理论上可以解决绝大部分问题,理论上剩下的漏洞,就只能靠微信官方来解决了。
      如果有需要答案的,可以回复,我后面再写一篇解决方案的文章。如果没人感兴趣就算了。
      2020-08-22
      回复
    • 中国阳光
      中国阳光
      2021-01-18回复Robin
      能讲一下你的 不完美的解决方案吗?
      2021-01-18
      回复
  • Owen
    Owen
    2020-08-20

    没看懂

    2020-08-20
    有用
    回复 1
    • Robin
      Robin
      发表于移动端
      2020-08-21
      我写这么详细还看不懂?是我表达有问题吗😱
      2020-08-21
      回复
登录 后发表内容
问题标签