公众号开发-群发图文中插入小程序卡片报错 invalid content hint 的解决

如果你也正在开发群发图文中插入小程序的功能,那么大概率也会遇到这问题。

之前通过微信第三方开放平台开发过一个可以管理多个公众号的系统,具体功能和效果可以参考  微信第三方开放平台代公众号实现业务 。

为方便小程序的运营和推广,微信公众号开发也支持通过接口在群发图文中插入小程序。和直接在MP后台编辑一样,有三种样式可供选择。

按照开发文档示例插入文字和图片跳转小程序都没问题,但是插入卡片小程序却是一直报错。

这个错误是说上传图文素材接口中的content字段的值是无效的,可能有非法字符,但是检查了很多遍,确保content参数的值很正常,但就是一直报错。去开发社区看帖子,很多人问这个问题,但是都没有给出解决办法。

后来又认真看了开发文档,发现 data-miniprogram-imageurl 参数说明写着图片必须为1080*864像素。测试的时候都是随便上传一张图片的,发现了这个细节后正儿八经的上传了一张1080*864像素的图片,竟然提交成功了。

事实证明,不一定是1080*864的像素,只要像素比保持为5:4就可以。所以同鞋,这也就解释了为啥把在MP后台上传的图片拿来通过接口再上传可以成功,而直接通过接口上传就会报错,因为MP后台上传过的图片像素比已经被裁剪成5:4了。

粗粗总结一句,文档看不细,开发两行泪。

您的一键三连,是我更新的最大动力,谢谢

山水有相逢,来日皆可期,谢谢阅读,我们再会

我手中的金箍棒,上能通天,下能探海

上一篇:微信支付服务商,消费者投诉处理系统

本文转载于网络 如有侵权请联系删除

相关文章

  • 离线安装 VSCode 扩展组件方法及批量安装脚本分享

    最新迷上了使用VSCode敲代码,在网上搜集了大量实用扩展组件,VSCode支持离线安装扩展,但一次只能安装一个,很麻烦,故在此记录及分享一下VSCode扩展组件的离线安装方法及在Windows系统下批量安装扩展的bat脚本。一、下载离线安装扩展包VSCode扩展安装/下载地址:https://marketplace.visualstudio.com/下载方法:搜索要下载的扩展名称: 进入扩展详情页下载离线安装包: 点击右侧的“DownloadExtension”开始下载。 二、安装离线扩展包方法一:在VSCode界面安装打开VSCode,点击扩展(EXTENSION)右侧的更多选项符号···,选择从VSIX安装...(installfromVXIS...) 选择对应的扩展包,点击“安装”按钮,然后重启VSCode即可。 方法二:通过命令行安装三、Windows批量安装扩展脚本内容声明标题:离线安装VSCode扩展组件方法及批量安装脚本分享链接:https://zixizixi.cn/vscode-extension-vsix-install来源:iTanken本作品采用知识共享署名

  • Linux 下大文件切割与合并

    作者:Escape 链接:https://escapelife.github.io/posts/72f237d3.html复制往往是因为网络传输的限制,导致很多时候,我们需要在Linux系统下进行大文件的切割。这样将一个大文件切割成为多个小文件,进行传输,传输完毕之后进行合并即可。文件切割-split在Linux系统下使用split命令进行大文件切割很方便命令语法-a:#指定输出文件名的后缀长度(默认为2个:aa,ab...) -d:#指定输出文件名的后缀用数字代替 -l:#行数分割模式(指定每多少行切成一个小文件;默认行数是1000行) -b:#二进制分割模式(支持单位:k/m) -C:#文件大小分割模式(切割时尽量维持每行的完整性) split[-a][-d][-l<行数>][-b<字节>][-C<字节>][要切割的文件][输出文件名] 复制使用实例#行切割文件 $split-l300000users.sql/data/users_ #使用数字后缀 $split-d-l300000users.sql/data/users_ #按字节大小分割

  • 用 Docker 在一台宿主机启动多个 etcd 节点

    在学习和开发基于etcd的服务和功能时,需要自己在本地部署一套etcd集群。原以为这是一个简单的事情,但意外地花了我几个小时才搞定……本文介绍有效的部署方法和踩过的一些坑。网络准备  我们以三个节点为例。首先,默认的etcd监听2370端口,提供HTTPAPI;另外采用2380端口完成节点之间(peer)的通信。  其次,官方文档采用的是在多个IP地址上部署不同的节点。但我只想在手头的一台MacBook上部署多个etcd容器。  第三,网上的教程使用的都是docker-compose来部署多节点,但这也不符合我的需求,因为我需要动态启动和关闭节点,模拟节点故障,从而观察etcd的状态。  综上所述,我需要给这个etcd集群分配总共6个端口,举例如下:节点名称httppeeretcd-node-12137921380etcd-node-22237922380etcd-node-32337923380启动脚本  我的操作系统是maxOSv11.2.1,Docker是DockerDesktop3.1.0版,shell是zsh,脚本如下:#Foreachmachine #SUDO=sudo S

  • 利用WGCNA识别肺鳞状细胞癌关键基因巧妙发4分+

    今天解读的这篇文章是2020年发表在InternationalJournalofMolecularSciences杂志上(影响因子4.183)。题目是IdentificationofKeyGenesRelatedtoLungSquamousCellCarcinomaUsingBioinformaticsAnalysis.本文使用生物信息学分析,确定了一些重要的生物标志物,用于进一步研究肺鳞状细胞癌的治疗方法和预后方法。摘要肺鳞状细胞癌(LUSC)通常在晚期被诊断为预后较差。其发病机理和预后机制亟待阐明。这项研究的目的是筛选与LUSC的发生,发展和预后有关的潜在生物标志物,以揭示未知的生理和病理过程。使用生物信息学分析,对来自GEO和TCGA数据库的肺鳞状细胞癌数据集进行分析,以识别差异表达基因(DEG)。此外,整合了PPI和WGCNA网络分析,以识别与LUSC密切相关的关键基因。另外,进行生存分析以实现良好预测准确性的预后模型。最终识别出了337个上调基因和119个下调基因,其中四个基因具有被发现在LUSC发展中起着至关重要的作用,即CCNA2,AURKA,AURKB和FEN1。预后模

  • Socket与WebSocket以及http与https重新总结

    Socket与WebSocket以及http与https重新总结一.Socket网络中的Socket是一个抽象的接口,而是为了方便使用TCP或UDP而抽象出来的一层,可以理解为网络中连接的两端。通常被叫做套接字接口.二.WebSocketWebSocket就是其中一种,是为了创建一种双向通信(全双工)的协议,来弥补HTTP协议在持久通信能力上的不足WebSocket连接的过程是: 首先,客户端发起http请求,经过3次握手后,建立起TCP连接;http请求里存放WebSocket支持的版本号等信息,如:Upgrade、Connection、WebSocket-Version等; 然后,服务器收到客户端的握手请求后,同样采用HTTP协议回馈数据; 最后,客户端收到连接成功的消息后,开始借助于TCP传输信道进行全双工通信。复制三.总结两者关系Socket是传输控制层接口,WebSocket是应用层协议。四.http与https两者的概念http协议:是超文本传输协议,信息是明文传输。如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息。 https协议:是具有安

  • Python类的继承和方法重写总结

    Python类的继承和方法重写总结我们都知道类可以继承,通过继承可以实现代码的复用,使代码看起来更加简洁比如:Class B(A): Pass复制定义了一个名为B的类,它继承于A,我们把B叫做A的子类,A叫做B的超类(父类)。方法重写当子类定义了一个和超类相同名字的方法时,那么子类的这个方法将覆盖超类相同的方法(或称为重写)先借用两个例子:>>> class Bird: ...     def __init__(self): ...         self.hungry = True ...     def eat(self): ...         if self.hungry: ...             print 'Aaaah...' ...             self.hungry = False ...         else: ...             print 'No,thanks!' ... >>> b = Bird() >>> dir(b) >

  • 亚马逊Alexa是如何学习新语言的?

    编辑|TGS 发布|ATYUN订阅号亚马逊的Alexa助手最近学会了新的语言——印地语、美国西班牙语和巴西葡萄牙语。对此,亚马逊研究科学高级经理JanetSlifka今天上午在Alexa博客上发表的一篇文章中解释说:合成数据在Alexa学习新语言时起到了很大的作用,但它不是最终的万能解决方案,新的语言学习依然需要新的引导工具。亚马逊AlexaAI应用建模和数据科学小组利用“语法归纳”技术分析“黄金话语”,开发了新的语法系统工具,它能生成一系列可以生成句子的表达式。此外,他们还利用“引导重采样”技术,开发了一种可以通过从现有数据中的例子中重组单词和短语来创造新句子的工具,该工具的重点任务是优化句子类型的数量和分布。Slifka指出,当Alexa的新语言版本处于积极开发阶段时,团队会为系统编译培训数据,以便了解客户的意图。数据有一部分来自人工智能模型翻译的现有语言,其余剩下部分则通常来自crowdworkers和Cleo——向客户提供提示答案的Alexa语音应用。语法系统可以使用一种名为贝叶斯模型合并的技术,来生成一个具有代表性的语法,或者使用一组重写规则,通过单词插入、删除和替换来改变基

  • 用aiohttp和uvloop实现一个高性能爬虫

    #-*-coding:utf-8-*- importrequests,asyncio,aiohttp,os,time defrun_time(fn): '''装饰器,用于查看图片下载运行时间''' defwrapper(*args,**kwargs): start=time.time() fn(*args,**kwargs) print('运行时间{}'.format(time.time()-start)) returnwrapper classCrawl_Image: def__init__(self): self.num=1 if'图片'notinos.listdir('.'): os.mkdir('图片') self.path=os.path.join(os.path.abspath('.'),'图片') os.chdir(self.path) defstr_dict(self): 

  • 开源TF-Ranking可扩展库,支持多种排序学习

    最近,谷歌新开源了可扩展的TensorFlow库TF-Ranking,可用于学习排序。所谓学习排序,也就是对项目列表进行排序,从而将整个功能最大化的过程。TF-Ranking中有一套完整的学习排序的算法,包含成对或列表损失函数、多项目评分、排名度量优化和无偏见的学习排名。谷歌在官方博客表示,TF-Ranking在创建高质量排名模型时速度快且易于使用,这套统一的框架能帮助ML研究人员、从业者和爱好者能够在单个库中评估和选择一系列不同的排名模型。谷歌还提供了灵活的API,用户可以在其中定义和插入自己的自定义损失函数、评分函数和衡量标准,开发自己的自定义模型。支持现有算法和衡量标准TF-Ranking的适用性很广,既可支持目前广泛使用的排序学习算法,还能通过嵌入和扩展到数亿个训练示例来处理稀疏特征。TF-Ranking支持许多常用的排名衡量标准,包括平均倒数排名(MRR)和NDCG,还可以在TensorBoard(开源TensorFlow可视化仪表板)上显示这些标准。多项评分TF-Ranking支持与以往不同的评分机制,比如,可以挑战一把多项目评分。这是此前的一个难以进行推理的行业瓶颈。TF

  • 资源 | 2017年最流行的15个数据科学Python库

    Python近几年在数据科学行业获得了人们的极大青睐,各种资源也层出不穷。数据科学解决方案公司ActiveWizards近日根据他们自己的应用开发经验,总结了数据科学家和工程师将在2017年最常使用的Python库。核心库1)NumPy地址:http://www.numpy.org当使用Python开始处理科学任务时,不可避免地需要求助Python的SciPyStack,它是专门为Python中的科学计算而设计的软件的集合(不要与SciPy混淆,它只是这个stack的一部分,以及围绕这个stack的社区)。这个stack相当庞大,其中有十几个库,所以我们想聚焦在核心包上(特别是最重要的)。NumPy(代表NumericalPython)是构建科学计算stack的最基础的包。它为Python中的n维数组和矩阵的操作提供了大量有用的功能。该库还提供了NumPy数组类型的数学运算向量化,可以提升性能,从而加快执行速度。2)SciPy地址:https://www.scipy.orgSciPy是一个工程和科学软件库。除此以外,你还要了解SciPyStack和SciPy库之间的区别。SciPy包含

  • 怎么实现Redis的高可用?(主从、哨兵、集群)

    高可用有两个含义:一是数据尽量不丢失,二是保证服务尽可能可用。AOF和RDB数据持久化保证了数据尽量不丢失,那么多节点来保证服务尽可能提供服务。 一般在实际生产中,服务不会部署成单节点,主要是有三个原因. 容易出现单点故障,导致服务不可用 单节点处理所有的请求,吞吐量有限 单节点容量有限 为了实现高可用,通常的做法是,将数据库复制多个副本以部署在不同的服务器上,其中一台挂了也可以继续提供服务。Redis实现高可用有三种部署模式:主从模式,哨兵模式, 集群模式。 一、主从模式 既然一台服务宕机了会导致提供不可用,那是不是可以考虑多台就可以解决了。Redis提供了主从模式。通过主从复制,将数据冗余一份复制到其他Redis服务器。 Master节点,负责读写操作,Slave节点,只负责读操作。 1、主从复制原理 主从模式采用了读写分离,所有数据的写操作只会在Master库上进行,Master库有了最新的数据后,会同步给Slave库,这样,主从库的数据就是一致的。 这里要思考是主从库同步是如何完成的?Master库数据是一次性传给Slave库,还是分批同步的?正常运行中又怎么同步呢?要

  • 优化笔记: jxrsfxrxx_D_20140916.gz

    性能瓶颈在1734表的重复扫描。   ----------------------------------想进一步研究,继续往下看------------------------------   1.      所有相似子查询合并成一个(不仅仅是相同,如WBPJRQ,DBPJ,WBPJ字段),合并方法见下面代码。 2.      如果仅是为了验证存在的话,可以把join改为exist或者in。比如第一段脚本的1018表和1090表相连。 在oracle和sqlserver中,join有3中算法,分别是循环迭代,组合,哈希。而这3种算法,都要进行全部匹配。MySQL没有组合连接,只有两种算法。 而exist和in会根据统计信息,自动选择用半连接算法,(notexist和notin是反向半连接)。也就是说,假如a表与b表是1对多的,用join的话,会把所有记录都比对一遍。而用exist或in,只要找到第一个就返回,不再向下扫描。 3. &nb

  • N-gram的简单的介绍

    目录:   1.联合概率   2.条件概率   3.N-gram的计算方式    4.评估N-gram的模型. 前言:     N-gram是机器学习中NLP处理中的一个较为重要的语言模型,常用来做句子相似度比较,模糊查询,以及句子合理性,句子矫正等.再系统的介绍N-gram前,我们先了解一下这几种概率. 正文:   1、联合概率介绍:     形如:p(W1,....,Wn);表示的意思是:w1,...Wn同时发生的概率.列举一个具体的例子说明:     P(A,B),表示的是A,B同时发生的概率.   1.1当A,B相互独立时,也就是交集为空的时候,P(A,B)=P(A)P(B)   1.2当A,B相关联的时候,或者说存在交集的时候,P(A,B)=P(A)P(B|A),如下图所示          总的样本数为T,A的样本数为7,B的样本数为6,A,B相同的样本数为2 那么:     P(A,B)=2/T   1.31.2处的公式简化到一般形式:    P(w1,w2,w3)=P(W1)P(W2|W1)P(W3|W1,W2)   一

  • python基础

    博客目录 python基础部分 基础 计算机硬件发展史 计算机硬件 python入门 数据类型及常用方法 垃圾回收机制 用户交互与运算符 流程控制 数据类型内置方法 字符编码 文件处理 函数 函数的基本使用 函数的参数 名称空间与作用域 函数对象与闭包 装饰器 迭代器 生成器 函数递归 面向过程与函数式 常用模块 模块句式 常见内置模块 包 开发软件的目录规范 ATM项目 面向对象 面向对象前戏 面向对象编程 封装 继承与派生 多态性与鸭子类型 绑定方法与非绑定方法 反射、内置方法 面向对象高级 元类 网络并发编程 网络并发合集 数据库部分 初识数据库 mysql表操作 mysql记录操作 mysql索引原理 python操作mysql 其他相关知识点链接: 深浅拷贝

  • 使用NetronGraphLib类库开发Qfd质量屋编制工具

    前言 可执行文件下载 QfdHouse-exe.zip  因项目需要做了一个质量功能配置(QualityFunctionDeployment简称Qfd)的质量屋编制工具软件,本软件是在发布一个免费开源软件--PAD流程图绘制软件PADFlowChart基础之上做的,效果如下:  支持新建、保存、导出图片,自定义用户需求和技术特性,单元格点击切换关联矩阵程度和自关联矩阵的相关性。 开发中解决的问题 相信来这的人对Qfd是不感兴趣的,下面就把遇到的问题说一下。 如何设置图形的初始大小 1.在Shape类增加默认高度和宽度的属性 ///<summary> ///默认宽度 ///</summary> privatefloatmDefaultWidth=0f; ///<summary> ///默认高度 ///</summary> privatefloatmDefaultHeigh=0f;复制 ///<summary> ///默认宽度 ///</summary> [GraphMLData

  • 软件开发者路线图梗概&amp;书摘chapter2

    空杯心态:放下对技能水平的自鸣得意 1、入门语言:学习一门语言,从实际问题入手→形成反馈回路 构建学习沙箱 利用实际代码,进行学习测试 学习一门语言:与精通该语言的专家一起工作,即找人指导 阅读他人的代码,分享经验 第一门语言:框架 深入挖掘语言&学习迥然不同的方法解决问题的语言 语言规范,通读他人写的标准库,打补丁,得到自己的通用法 2、白色腰带:学习进度降低,尊重与好奇的态度 用不同范式的语言来实现某种编程范式编写的程序 3、释放激情:热情与好奇心,需适应团队动态 思想的多样性→集体智慧 4、具体技能:收集你欣赏的人的履历,找出具体五项技能 5、暴露无知:学习是交付软件的一部分 告知真相,使安心 问问题 专家技能是副产品,而非目的地 不甚了然的列表并持续更新 6、正视无知:填补只是空白,团队利益 同暴露无知相结合: 暴露而不正视就是耸肩不管能力之外的部分 正视而不暴露阻碍自己克服无知 7、深水区域:更大挑战,保证失去控制室马上得到帮助 8、以退为进:短期修正,时间限制,重新实现一项任务

  • [笔记]动态规划入门

    以前存在本地的东西,发上来方便找(x) 动态规划 目录动态规划模型背包数位DP题线性背包单调栈/单调队列数位树形 模型 背包 01背包\(f[i][j]=\max(f[i-1][j],f[i-1][j-w_i]+v_i)\) 完全背包(每个物品次数不限),那就用\(f[i][j]=\max(f[i-1][j],f[i][j-w_i]+v_i)\),滚动数组的时候对于体积直接从小到大枚举就好。 多重背包(第\(i\)种物品有\(k_i\)个),大暴力是\(O(nm\sumk_i)\),二进制拆分\(k_i=1+2+\dots+2^t+(k_i-(1+2+\dots,2^t))\),复杂度\(O(nm\sum\logk_i)\) intx;scanf("%d",&x); intc=1; while(x>c){ x-=c; w[++n]=W[i]*c; v[n]=V[i]*c c<<=1; } if(x)w[++n]=W[i]*x,v[n]=V[i]*x; 复制 单调队列优化多重背包 暴力dp:\(f[i][j]=\max_{k=0}^{k_i}(f[i-1][j

  • 基础拓扑习题与题解(一)

    以下习题选自WalterRudin所著的《PrinciplesofMathematicalAnalysisThirdEdition》(数学分析原理第三版)的第二章:基础拓扑(BasicTopology)习题集. 习题7 令A1,A2,A3,...是度量空间X的子集.记 Bn =∪ i=1..n Ai,B =∪ i=1..∞ Ai,则(a)B¬n =∪ i=1..n A¬i,n=1,2,3,....(b) B¬ ⊃∪ i=1..∞ A¬i.举例说明这里的包含可以是真包含.  证明:先考虑(a).当n=1时,B1 = A1,显然有 B¬1 =A¬1.当n=2时,B2 = A1∪A2,任取点p∈ A¬1∪ A¬2,若p∈A1 ∪A2,即p∈B2,则显然有p∈B¬2;若p ∉ A1 ∪A2,不妨设p∈ A¬1 

  • 京东白条

    京东白条作为京东金融的个人信用支付产品,为客户提供最长30天延期付款或者3-24各月分期付款两种不同消费付款方式以及一定的信用额度,产品功能与信用卡极其类似,为信贷产品 京东白条身份之争“赊购”还是“信贷”   事实上,京东白条是早于蚂蚁花呗落地的互联网赊购产品。2014年2月,京东白条便已在京东商城内测,次月,支付宝和腾讯试图推出虚拟信用卡业务,但随即遭到央行叫停,而京东白条则顺利存活。原因在于京东白条实质上是京东的应收账款,消费产生以后,京东不垫付资金,而是计入应收账款,通过账期的管理实现用户提前消费。   相比于蚂蚁花呗完全由蚂蚁小贷出资的做法,京东白条的定性有些复杂。为了抢占市场,京东金融不断拓展白条场景,校园白条、旅游白条+、安居白条+等产品相继出现,令白条的“身份”变得模糊。京东金融内部人士曾告诉银谷金融,在白条业务中,一部分是通过应收账款管理实现提前消费,而另一部分则是京东旗下小贷公司负责出资。    非法套现京东白条透支风险转嫁给银行   从发展路径来看,互联网金融一向是以快速创新、场景不断叠加为优势,京东白条业务也明显体现出这一特点,而这或许是令金融机构顾虑的

  • 将博客搬至CSDN

    在各大论坛挣扎了将近一年,现在决定重回csdn,并以后都在csdn发表了。

  • memcached使用

    简介: 利用memcached可以实现缓存服务器,memcached利用TCP将缓存存储在其他服务器中,且memcached是利用内存看空间来保存缓存数据的,减少了不必要的磁盘I/O。另外,memcached在存储区中对于每一个key都维护一个过期时间,一旦达到这个过期时间,memcached便会自动删除该key,方便了我们的过期检查机制的实现,只需在保存缓存数据时指定过期时间即可。 使用memcache的两种实现jar包: 1、使用net.py.spymemcached:  1)在pom.xml中添加对net.py.spymemcached的依赖; <dependency> <groupId>net.spy</groupId> <artifactId>spymemcached</artifactId> <version>2.11.0</version> </dependency>复制 2)使用Demo: 1packagespymemcached; 2 3importjava

相关推荐

推荐阅读