微信公众号群发接口和原创校验

2023-11-10

一、说明

在公众平台网站上,为订阅号提供了每天一条的群发权限,为服务号提供每月(自然月)4条的群发权限。而对于某些具备开发能力的公众号运营者,可以通过高级群发接口,实现更灵活的群发能力(这些接口只是说替代了公众平台网站的界面操作,不是说就突破条数限制了)。

1.1限制:

1、对于认证订阅号,群发接口每天可成功调用1次,此次群发可选择发送给全部用户或某个标签;
2、对于认证服务号虽然开发者使用高级群发接口的每日调用限制为100次,但是用户每月只能接收4条,无论在公众平台网站上,还是使用接口群发,用户每月只能接收4条群发消息,多于4条的群发将对该用户发送失败;
3、开发者可以使用预览接口校对消息样式和排版,通过预览接口可发送编辑好的消息给指定用户校验效果;
4、群发过程中,微信后台会自动进行图文消息原创校验,请提前设置好相关参数(send_ignore等);
5、开发者可以主动设置 clientmsgid 来避免重复推送。
6、群发接口每分钟限制请求60次,超过限制的请求会被拒绝。
7、图文消息正文中插入自己帐号和其他公众号已群发文章链接的能力。


二、群发图文消息

群发图文消息的过程如下:
1、首先,预先将图文消息中需要用到的图片,使用上传图文消息内图片接口,上传成功并获得图片 URL;
2、上传图文消息素材,需要用到图片时,请使用上一步获取的图片 URL;
3、使用对用户标签的群发,或对 OpenID 列表的群发,将图文消息群发出去,群发时微信会进行原创校验,并返回群发操作结果;
4、在上述过程中,如果需要,还可以预览图文消息、查询群发状态,或删除已群发的消息等。


三、群发图片、文本

群发图片、文本等其他消息类型的过程如下:
1、如果是群发文本消息,则直接根据下面的接口说明进行群发即可;
2、如果是群发图片、视频等消息,则需要预先通过素材管理接口准备好 mediaID。


四、群发时使用is_to_all

关于群发时使用is_to_all为true(表示对所有用户发送)使其进入公众号在微信客户端的历史消息列表:

  1. 使用is_to_all为true且成功群发,会使得此次群发进入历史消息列表。
  2. 为防止异常,认证订阅号在一天内,只能使用is_to_all为true进行群发一次,或者在公众平台官网群发(不管本次群发是对全体还是对某个分组)一次。以避免一天内有2条群发进入历史消息列表。
  3. 类似地,服务号在一个月内,使用is_to_all为true群发的次数,加上公众平台官网群发(不管本次群发是对全体还是对某个分组)的次数,最多只能是4次。
  4. 设置is_to_all为false时是可以多次群发的,但每个用户只会收到最多4条,且这些群发不会进入历史消息列表。

五、上传图文消息接口

下面介绍上传图文消息的接口(仅用于图文消息)

5.1 上传图文消息内的图片获取URL【订阅号与服务号认证后均可用】

请注意,本接口所上传的图片不占用公众号的素材库中图片数量的5000个的限制。图片仅支持jpg/png格式,大小必须在1MB以下

地址:
post-https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=ACCESS_TOKEN

调用示例:
curl -F media=@test.jpg "https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=ACCESS_TOKEN"

示例中的media指form-data中媒体文件标识,有filename、filelength、content-type等信息

正常情况下,微信后台会返回此图片的URL

5.2 上传图文消息素材【订阅号与服务号认证后均可用】

地址:
post-https://api.weixin.qq.com/cgi-bin/media/uploadnews?access_token=ACCESS_TOKEN

post的数据包括文章的信息,如作者、标题、缩略图、content等,具体参数请看群发接口和原创校验的“上传图文消息素材”部分(群发的图文消息中可以添加小程序)

上传成功的话微信后台会返回形如下列数据的信息:

{
   "type":"news",
   "media_id":"CsEf3ldqkAYJAU6EJeIkStVDSvffUJ54vqbThMgplD-VJXXof6ctX5fI6-aYyUiQ",
   "created_at":1391857799
}

六、原创校验

图文消息群发前将进行原创校验,相关设定如下:

6.1 群发接口新增原创校验流程

开发者调用群发接口进行图文消息的群发时,微信会将开发者准备群发的文章,与公众平台原创库中的文章进行比较,校验结果分为以下几种:

  • 当前准备群发的文章,未命中原创库中的文章,则可以群发。
  • 当前准备群发的文章,已命中原创库中的文章,则:
    • 若原创作者允许转载该文章,则可以进行群发。群发时,会自动替换成原文的样式,且会自动将文章注明为转载并显示来源(若希望修改原文内容或样式,或群发时不显示转载来源,可自行与原创公众号作者联系并获得授权之后再进行群发)。
    • 若原创作者禁止转载该文章,则不能进行群发(若希望转载该篇文章,可自行与原创公众号作者联系并获得授权之后再进行群发)。

6.2 群发接口的 send_ignore_reprint 参数

群发接口新增 send_ignore_reprint 参数,开发者可以对群发接口的 send_ignore_reprint 参数进行设置,指定待群发的文章被判定为转载时,是否继续群发。

  • 当 send_ignore_reprint 参数设置为1时,文章被判定为转载时,且原创文允许转载时,将继续进行群发操作。
  • 当 send_ignore_reprint 参数设置为0时(默认),文章被判定为转载时,将停止群发操作。

七、开始群发

下面介绍群发的相关接口(两种方式)

7.1 根据标签进行群发【订阅号与服务号认证后均可用】

地址为:
post-https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_token=ACCESS_TOKEN
post的数据根据消息种类不同有所区别

1、图文消息(注意:图文消息的media_id需要通过“上传图文消息接口”中的方法来得到)

{
   "filter":{
      "is_to_all":false,
      "tag_id":2
   },
   "mpnews":{
      "media_id":"123dsdajkasd231jhksad"
   },
    "msgtype":"mpnews",
    "send_ignore_reprint":0
}

2、文本

{
   "filter":{
      "is_to_all":false,
      "tag_id":2
   },
   "text":{
      "content":"CONTENT"
   },
    "msgtype":"text"
}

3、语音/音频(注意:此处media_id需通过基础支持中的上传下载多媒体文件来得到)

{
   "filter":{
      "is_to_all":false,
      "tag_id":2
   },
   "voice":{
      "media_id":"123dsdajkasd231jhksad"
   },
    "msgtype":"voice"
}

4、图片(注意:此处media_id需通过基础支持中的上传下载多媒体文件来得到)

{
   "filter":{
      "is_to_all":false,
      "tag_id":2
   },
   "image":{
      "media_id":"123dsdajkasd231jhksad"
   },
    "msgtype":"image"
}

5、视频
视频消息较为特殊,它的media_id需要做一次转换:
1、通过基础支持中的上传下载多媒体文件来得到初步的media_id
2、将此media_id用post请求到https://api.weixin.qq.com/cgi-bin/media/uploadvideo?access_token=ACCESS_TOKEN
3、微信后台返回新的media_id
4、与其他群发消息一样调用接口

{
   "filter":{
      "is_to_all":false,
      "tag_id":2
   },
   "mpvideo":{
      "media_id":"IhdaAQXuvJtGzwwc0abfXnzeezfO0NgPK6AQYShD8RQYMTtfzbLdBIQkQziv2XJc"
   },
    "msgtype":"mpvideo"
}

注意:此json中的media_id是转换后的media_id

6、卡券消息

{
   "filter":{
      "is_to_all":false,
      "tag_id":"2"
   },
  "wxcard":{              
           "card_id":"123dsdajkasd231jhksad"         
            },
   "msgtype":"wxcard"
}

以上json数据中的:

  • “filter”用于设定图文消息的接收者;
  • “is_to_all”用于设定是否向全部用户发送,值为true或false,选择true该消息群发给所有用户,选择false可根据tag_id发送给指定群组的用户;
  • “tag_id”为群发到的标签的tag_id,参见用户管理中用户分组接口,若is_to_all值为true,可不填写tag_id

7.2 根据OpenID列表群发【订阅号不可用,服务号认证后可用】

地址为:
post-https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token=ACCESS_TOKEN

1、图文消息(注意:图文消息的media_id需要通过“上传图文消息接口”中的方法来得到)

{
   "touser":[
    "OPENID1",
    "OPENID2"
   ],
   "mpnews":{
      "media_id":"123dsdajkasd231jhksad"
   },
    "msgtype":"mpnews""send_ignore_reprint":0
}

2、文本

{
   "touser":[
    "OPENID1",
    "OPENID2"
   ],
    "msgtype": "text",
    "text": { "content": "hello from boxer."}
}

3、语音

{
   "touser":[
    "OPENID1",
    "OPENID2"
   ],
   "voice":{
      "media_id":"mLxl6paC7z2Tl-NJT64yzJve8T9c8u9K2x-Ai6Ujd4lIH9IBuF6-2r66mamn_gIT"
   },
    "msgtype":"voice"
}

4、图片

{
   "touser":[
    "OPENID1",
    "OPENID2"
   ],
   "image":{
      "media_id":"BTgN0opcW3Y5zV_ZebbsD3NFKRWf6cb7OPswPi9Q83fOJHK2P67dzxn11Cp7THat"
   },
    "msgtype":"image"
}

5、视频(视频的media_id需要做一次转换,详细过程请看“根据标签进行群发”的“视频”部分)

{
   "touser":[
    "OPENID1",
    "OPENID2"
   ],
   "mpvideo":{
      "media_id":"123dsdajkasd231jhksad",
      "title":"TITLE",
      "description":"DESCRIPTION"
   },
    "msgtype":"mpvideo"
}

6、卡券

{
   "touser":[
    "OPENID1",
    "OPENID2"
   ],
        "wxcard": {"card_id":"123dsdajkasd231jhksad"}
        "msgtype":"wxcard"
}

以上json数据中的:

  • “touser”为图文消息的接收者,一串OpenID列表,OpenID最少2个,最多10000个

八、删除群发【订阅号与服务号认证后均可用】

群发之后,随时可以通过该接口删除群发。
地址为:
post-https://api.weixin.qq.com/cgi-bin/message/mass/delete?access_token=ACCESS_TOKEN
post数据如下:

参数 是否必须 说明
msg_id 发送出去的消息ID
article_idx 要删除的文章在图文消息中的位置,第一篇编号为1,该字段不填或填0会删除全部文章

注意:
1、只有已经发送成功的消息才能删除
2、删除消息是将消息的图文详情页失效,已经收到的用户,还是能在其本地看到消息卡片。
3、删除群发消息只能删除图文消息和视频消息,其他类型的消息一经发送,无法删除。
4、如果多次群发发送的是一个图文消息,那么删除其中一次群发,就会删除掉这个图文消息,导致所有群发都失效


九、预览接口【订阅号与服务号认证后均可用】

开发者可通过该接口发送消息给指定用户,在手机端查看消息的样式和排版。为了满足第三方平台开发者的需求,在保留对openID预览能力的同时,增加了对指定微信号发送预览的能力,但该能力每日调用次数有限制(100次),请勿滥用。
地址为:
post-https://api.weixin.qq.com/cgi-bin/message/mass/preview?access_token=ACCESS_TOKEN

1、图文消息

{
   "touser":"OPENID", 
   "mpnews":{              
            "media_id":"123dsdajkasd231jhksad"               
             },
   "msgtype":"mpnews" 
}

2、文本

{     
    "touser":"OPENID",
    "text":{           
           "content":"CONTENT"            
           },     
    "msgtype":"text"
}

3、语音

{
    "touser":"OPENID",
    "voice":{              
            "media_id":"123dsdajkasd231jhksad"
            },
    "msgtype":"voice" 
}

4、图片

{
    "touser":"OPENID",
    "image":{      
            "media_id":"123dsdajkasd231jhksad"
            },
    "msgtype":"image" 
}

5、视频

{
    "touser":"OPENID",
    "mpvideo":{  "media_id":"IhdaAQXuvJtGzwwc0abfXnzeezfO0NgPK6AQYShD8RQYMTtfzbLdBIQkQziv2XJc",   
               },
    "msgtype":"mpvideo" 
}

6、卡券

{ "touser":"OPENID", 
  "wxcard":{              
           "card_id":"123dsdajkasd231jhksad",
            "card_ext": "{"code":"","openid":"","timestamp":"1402057159","signature":"017bb17407c8e0058a66d72dcc61632b70f511ad"}"               
            }, 
  "msgtype":"wxcard" 
}

请注意,上述JSON数据中的touser字段都可以改为towxname,这样就可以针对微信号进行预览(而非openID),towxname和touser同时赋值时,以towxname优先


十、查询群发消息发送状态【订阅号与服务号认证后均可用】

地址为:
post-https://api.weixin.qq.com/cgi-bin/message/mass/get?access_token=ACCESS_TOKEN
post数据为:

{
   "msg_id": "201053012"
}

返回数据为(正确时):

{
     "msg_id":201053012,
     "msg_status":"SEND_SUCCESS"
}

其中msg_status为消息发送后的状态,SEND_SUCCESS表示发送成功,SENDING表示发送中,SEND_FAIL表示发送失败,DELETE表示已删除


十一、事件推送群发结果

由于群发任务提交后,群发任务可能在一定时间后才完成,因此,群发接口调用时,仅会给出群发任务是否提交成功的提示,若群发任务提交成功,则在群发任务结束时,会向开发者在公众平台填写的开发者URL(callback URL)推送事件(需要注意,由于群发任务彻底完成需要较长时间,将会在群发任务即将完成的时候,就推送群发结果,此时的推送人数数据将会与实际情形存在一定误差)。

推送数据如下(示例):

<xml>
<ToUserName>< ![CDATA[gh_4d00ed8d6399] ]></ToUserName>
<FromUserName>< ![CDATA[oV5CrjpxgaGXNHIQigzNlgLTnwic] ]></FromUserName>
<CreateTime>1481013459</CreateTime>
<MsgType>< ![CDATA[event] ]></MsgType>
<Event>< ![CDATA[MASSSENDJOBFINISH] ]></Event>
<MsgID>1000001625</MsgID>
<Status>< ![CDATA[err(30003)] ]></Status>
<TotalCount>0</TotalCount>
<FilterCount>0</FilterCount>
<SentCount>0</SentCount>
<ErrorCount>0</ErrorCount>
<CopyrightCheckResult>
<Count>2</Count>
<ResultList>
<item>
<ArticleIdx>1</ArticleIdx>
<UserDeclareState>0</UserDeclareState>
<AuditState>2</AuditState>
<OriginalArticleUrl>< ![CDATA[Url_1] ]></OriginalArticleUrl>
<OriginalArticleType>1</OriginalArticleType>
<CanReprint>1</CanReprint>
<NeedReplaceContent>1</NeedReplaceContent>
<NeedShowReprintSource>1</NeedShowReprintSource>
</item>
<item>
<ArticleIdx>2</ArticleIdx>
<UserDeclareState>0</UserDeclareState>
<AuditState>2</AuditState>
<OriginalArticleUrl>< ![CDATA[Url_2] ]></OriginalArticleUrl>
<OriginalArticleType>1</OriginalArticleType>
<CanReprint>1</CanReprint>
<NeedReplaceContent>1</NeedReplaceContent>
<NeedShowReprintSource>1</NeedShowReprintSource>
</item>
</ResultList>
<CheckState>2</CheckState>
</CopyrightCheckResult>
</xml>

各字段参数及说明如下:

参数 说明
ToUserName 公众号的微信号
FromUserName 公众号群发助手的微信号,为mphelper
CreateTime 创建时间的时间戳
MsgType 消息类型,此处为event
Event 事件信息,此处为MASSSENDJOBFINISH
MsgID 群发的消息ID
Status 群发的结构,为“send success”或“send fail”或“err(num)”。但send success时,也有可能因用户拒收公众号的消息、系统错误等原因造成少量用户接收失败。err(num)是审核失败的具体原因,可能的情况如下: err(10001), //涉嫌广告 err(20001), //涉嫌政治 err(20004), //涉嫌社会 err(20002), //涉嫌色情 err(20006), //涉嫌违法犯罪 err(20008), //涉嫌欺诈 err(20013), //涉嫌版权 err(22000), //涉嫌互推(互相宣传) err(21000), //涉嫌其他 err(30001) // 原创校验出现系统错误且用户选择了被判为转载就不群发 err(30002) // 原创校验被判定为不能群发 err(30003) // 原创校验被判定为转载文且用户选择了被判为转载就不群发
TotalCount tag_id下粉丝数;或者openid_list中的粉丝数
FilterCount 过滤(过滤是指特定地区、性别的过滤、用户设置拒收的过滤,用户接收已超4条的过滤)后,准备发送的粉丝数,原则上,FilterCount = SentCount + ErrorCount
SentCount 发送成功的粉丝数
ErrorCount 发送失败的粉丝数
ResultList 各个单图文校验结果
ArticleIdx 群发文章的序号,从1开始
UserDeclareState 用户声明文章的状态
AuditState 系统校验的状态
OriginalArticleUrl 相似原创文的url
OriginalArticleType 相似原创文的类型
CanReprint 是否能转载
NeedReplaceContent 是否需要替换成原创文内容
NeedShowReprintSource 是否需要注明转载来源
CheckState 整体校验结果,1-未被判为转载,可以群发,2-被判为转载,可以群发,3-被判为转载,不能群发

十二、使用 clientmsgid 参数,避免重复推送

群发接口新增 clientmsgid 参数,开发者调用群发接口时可以主动设置 clientmsgid 参数,避免重复推送。群发时,微信后台将对 24 小时内的群发记录进行检查,如果该 clientmsgid 已经存在一条群发记录,则会拒绝本次群发请求,返回已存在的群发msgid,开发者可以调用“查询群发消息发送状态”接口查看该条群发的状态。
使用方法:
在群发时(根据OpenID列表群发或根据标签进行群发)在post数据中加入clientmsgid字段(开发方维护的群发msgid,长度限制64字节,如不填,则后台默认以群发范围和群发内容的摘要值做为clientmsgid)。
示例(根据标签进行群发):

{
    "filter":{
       "is_to_all":false,
       "tag_id":2
    },
    "mpnews":{
       "media_id":"123dsdajkasd231jhksad"
    },
     "msgtype":"mpnews",
     "send_ignore_reprint":0,
     "clientmsgid":"send_tag_2" 
}

十三、控制群发速度

开发者可以使用限速接口来控制群发速度。

  • 获取群发速度
    地址为:
    post-https://api.weixin.qq.com/cgi-bin/message/mass/speed/get?access_token=ACCESS_TOKEN
    返回结果为:

    参数 是否必须 说明
    speed 群发速度的级别
    realspeed 群发速度的真实值 单位:万/分钟
  • 设置群发速度
    地址为:
    post-https://api.weixin.qq.com/cgi-bin/message/mass/speed/set?access_token=ACCESS_TOKEN
    post数据为:

    {
        "speed":1
    }

    群发速度(speed)的级别,是一个0到4的整数,数字越大表示群发速度越慢。

  • speed 与 realspeed 的关系如下:

    speed realspeed
    0 80w/分钟
    1 60w/分钟
    2 45w/分钟
    3 30w/分钟
    4 10w/分钟
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信公众号群发接口和原创校验 的相关文章

  • 微信小程序从A小程序跳转至B小程序内wx.navigateToMiniProgram

    多个小程序多个主体之间相互跳转wx navigateToMiniProgram 代码在最后 参数说明 属性 类型 必填 说明 appId string 否 要打开的小程序 appId path string 否 打开的页面路径 如果为空则打
  • 获取微信公众号地址的图片不能正常显示的问题

    获取微信公众号地址的图片不能正常显示的问题 目前已经获取微信公众号发布的图片 但不能正常显示 提示 此图片来自微信公众平台 未经允许不得引用 看了一下他的地址是这样的 https mmbiz qpic cn mmbiz jpg ic70qV
  • 基于新浪云服务器的微信公众号

    基于新浪云服务器的微信公众号 本微信公众号是智能浴室排雾及浴室滑倒报警系统的一个分支 通过设备上传到ONENET云平台 新浪云服务器调用云平台数据再反馈给微信公众号 从而实现微信公众号实时获取设备数据和发送报警信息给指定用户 因为只是代码放
  • 微信公众号开发中遇到的问题——支付(二)

    第一次开发微信公众号 也是第一次接触微信公众号的支付 我使用的是jssdk 用h5页面调用的支付 后台使用的是java 首先声明 我不是一个愤世嫉俗的人 也不喜欢吐槽 我认为别人提供接口就已经很不错了 干嘛要吐槽呢 但是 这一次 我不得不说
  • 微信公众号+Vue+JS-SDK配置注册失败,显示config:fail,Error: 系统错误,错误码:63002,invalid signature等解决方法

    用vue做微信公众号调用js sdk遇到的问题 问题1 JS SDK在IOS中报签名无效invalid signature 解决办法 在VUE路由进去你要操作的页面时进行config接口注入 首先打开工程文件中的router index j
  • H5清理微信缓存的方案

    背景 H5移动端开发 尤其是基于微信的公号开发 往往伴随着很严重的缓存问题 影响测试和开发人员的感情 为了解决这个问题 找到以下清除缓存的方式 希望对增进开发和测试人员的感情有所作用 方案 安卓端清除缓存的方法如下 http debugx5
  • 微信小程序(十)之消息推送配置(token验证失败的解决方案)

    背景 微信小程序开发 准备使用模板消息做些事情 但是发现需要先在微信公众平台的开发 开发设置 消息推送做配置 然后我们后台人员就开始各种配置 但是一到验证token就报错 很是郁闷 然后各种排查 发现了最终原因 过程和代码如下 很多网站给出
  • vue H5跳转小程序

    官方链接 目录 微信开放文档 摘要 小程序跳转按钮
  • 微信消息订阅功能开发流程

    一 可实现订阅消息推送 1 服务号 a 创建服务号类型的公众号并进行认证 认证的流程 补充公司营业执照相关信息 公司对公账号打款 三方电话认证等 以及300元认证费 b 申请模板消息功能 c 添加消息模板 d 添加模板消息发送接口 1 获取
  • 可能是颜值最高的微信Markdown编辑器,用Markdown的你一定会爱上

    不论是新媒体小编还是拥有自己公众号的开发者和开源组织 一定想要一个能够快速编辑且成品美观大方的编辑器 毕竟微信自带的编辑器功能有限 市面上其他编辑器功能又过于繁多 尤其对于开发者来说 文章中插入代码块这件事就非常令人头疼 所以 Gitee
  • 关于微信公众号获取token值和模板推送接口对接问题

    今天做了一个关于微信的接口 由于以前没有接触过关于微信的问题 现在碰到了查了很多资料 下面总结一下 1 获取token值 微信获取公众号token值需要公众号的appid和secret 这两个值是微信提供的 是不会变的 获取token值地址
  • 微信公众号群发接口和原创校验

    一 说明 1 1限制 二 群发图文消息 三 群发图片 文本 四 群发时使用is to all 五 上传图文消息接口 5 1 上传图文消息内的图片获取URL 订阅号与服务号认证后均可用 5 2 上传图文消息素材 订阅号与服务号认证后均可用 六
  • 前端对接微信公众号网页开发流程,前期配置

    微信公众号网页开发 其实就是我们开发的h5网页需要放到微信浏览器环境中使用 但是需要对接公众号授权 授权之后可以获取到用户的个人信息 以及可以使用公众号提供的一些API 如 图片上传 图片预览 获取位置信息 微信扫一扫等功能 在没有对接正式
  • jqueryweui,两个输入框解决方法

    document ready function
  • 微信公众号实现“一键关注”功能

    背景 之前用的一键关注要么通过图文 要么通过二维码 这样甚是麻烦 而且引导不到位 而看到朋友圈打广告的一些公众号可以直接关注 于是一直研究这个功能 今天终于实现了 分享给所有朋友 希望能帮助到所有朋友 这个引导关注的页面包含了公众号的log
  • java判断微信号是否关注微信公众号

    public CommonResult validateAttentionWxPublic String openId throws Exception CommonResult cr new CommonResult String acc
  • PHP实现微信公众号主动推送消息

    这篇文章主要介绍了php实现微信公众号主动推送消息的方法 PHP版微信公共平台消息主动推送 突破订阅号一天只能发送一条信息限制 需要的朋友可以参考下 通过学习借鉴朋友的实现方法进行整理 实现了PHP版的微信公共平台消息主动推送 分享给大家供
  • 【微信公众号】微信公众号授权出现的常见问题解决方案

    问题1 在微信公众号授权时出现了 解决方案 1 首先查看后端的url配置是否正确 是否进行了转码 官方API上说明了redirectUrl应使用String redirectUri URLEncoder encode redirectUrl
  • 手机报错:config:invalid signature问题;网页开发工具报错:config:fali,Error:系统错误,错误码:63002,invalidsignature问题

    折腾了几天发现是 java老哥单词少了一个字母 官方建议 invalid signature签名错误 建议按如下顺序检查 1 确认签名算法正确 可用http mp weixin qq com debug cgi bin sandbox t
  • 微信公众号AI爆文项目入门

    今日 尝试了进行AI爆文的项目 其核心逻辑是不依赖于传统的打造个人IP 而是使用ChatGPT 文心一言等大语言模型进行创作 并发表到微信公众号平台 实现低粉爆文的效果 通过系统流量池的推荐来实现收益 一篇10W 的文章的收益在800到几千

随机推荐

  • win10安装protobuf

    Win10安装protobuf 准备 安装VS 下载protobuf 安装cmake 下载gmock 安装 Cmake构建配置 使用VS编译protobuf 准备 安装VS 下载protobuf 下载地址 https github com
  • flutter app启动页的强制获取配置前先检查是否有网络

    判断网络状态 connectivity plus 2 3 9 late StreamSubscription
  • Java8 stream流的操作 map和list转换

    Java8 stream流的操作 1 将map的所有value转换成list 创建map并塞两个值 Map
  • Linux shell命令行可选参数的getopts命令使用例子

    Linux shell命令行可选参数的getopts命令使用例子 一 概述 getopts option DESCPRITION VARIABLE option 表示为某个脚本可以使用的选项 冒号如果某个选项 option 后面出现了冒号
  • pytorch余弦退火学习率CosineAnnealingLR的使用

    一 背景 再次使用CosineAnnealingLR的时候出现了一点疑惑 这里记录一下 其使用方法和参数含义 后面的代码基于 pytorch 版本 1 1 不同版本可能代码略有差距 但是含义是差不多的 二 余弦退火的目的和用法 2 1 为啥
  • flutter video_player视频播放器的横竖屏切换

    参考 需要使用到的库 import package flutter services dart 用到的方法 实现全屏功能代码 一般写在按钮或者初始化函数里 SystemChrome setPreferredOrientations Devi
  • linux添加静态路由

    linux下静态路由修改命令 方法一 添加路由 route add net 192 168 0 0 24 gw 192 168 0 1 route add host 192 168 1 1 dev 192 168 0 1 删除路由 rout
  • 推荐系统的学习历程(二)

    前面都是大二上学期的事情了 到了大二的下学期 老师急着要成果 我之前做的铺垫也可以得到一点体现了 经过了一个寒假的读论文 我也开始对这个算法有了不错的理解 发现这不过是统计学 高等数学 线性代数的简单应用而已 看过很多文献对这些算法的改进
  • java基础编程

    目录 一 java语言概述 1 适用的领域 2 特点 3 环境搭建 二 基本语法 1 关键字和标识符 1 1关键字 1 2保留字 1 3标识符 2 变量的使用 2 1分类 2 2定义变量的格式 2 3注意 2 4基本数据类型变量间的运算规则
  • 一类6维Lorenz型超混沌系统的有限时间驱动-响应同步

    本文基于Lypunov稳定性定理 通过构造Lyapunov函数以及设计提出一非线性反馈控制输入器 u u u 进而实现一类六维Lorenz型混沌系统的有限时间同步 本文所基于的一类六维Lorenz型超混沌系统可表示如下
  • C语言中定义字符串的几种方式

    1 什么是字符串 所谓字符串本质上就是以 0作为 结尾的特殊字符数组 2 定义字符串的过程中有哪些注意点 由于字符串本质上其实就是以 0作为 结尾的特殊字符数组 所以定义字符串时 必须保证字符串存储的最后一个元素为 0 当我们没有给定字符串
  • C语言解释器的实现--序(零)

    在写CuteC文本编辑器的同时 为了使之有脚本执行能力 特意实现了一个简易的C语言解释器 所谓的解释器 就是它是解析执行脚本文件的 并不产生可执行的目标代码 它具备了C语言的几乎全部的语法 随着时间的推移 我打算把它作为一个独立的项目来开发
  • 基于BGP/MPLS 虚拟专用网络实现企业与公网服务的相互访问

    一 实验拓扑图 1 拓扑图 二 实验目的 1 基于BGP MPLS 虚拟专用网络实现企业与公网服务的相互访问 三 设计需求 1 公司总部和分部与 Internet 之间利用 BGP MPLS 虚拟专用网络 实现互通 2 分部之间的通信需通过
  • 栈实现计算机复杂计算

    package com yg stack author GeQiLin date 2020 2 22 14 14 import jdk nashorn internal ir ReturnNode public class Calculat
  • html+向ul追加li内容,肿么用js在ul标签下添加li标签,并要求li有id?

    用 ul append li id tb num class normaltab 新建类型 li 就可以实现 具体添加 参考方法如下 var dy div parent document getElementById xs 这个div在if
  • idea中使用vue.js的前期准备 保姆级教学

    idea的下载安装教程参考 1条消息 IDEA 下载安装教程 桑稚远方 的博客 CSDN博客https blog csdn net weixin 59367964 article details 127900057 安装完之后就可以开始我们
  • 流程图控件GoJS内置GraphObject类各指数介绍

    GoJS是一款功能强大 快速且轻量级的流程图控件 可帮助你在JavaScript 和HTML5 Canvas程序中创建流程图 且极大地简化您的JavaScript Canvas 程序 点击下载GoJS最新版 背景点击 功能 InputEve
  • 动态规划学习(一)

    动态规划算法与分治法类似 其基本思想也是将待求解问题分解成若干个子问题 但是经过分解得到的子问题往往不是相互独立的 在用分治法求解的时候 子问题被重复计算了多次 解决方法 保存已解决的子问题的答案 避免大量重复计算 动态规划与分治法区别 适
  • 前端学习:表格学习,附练习+源码

    文章目录 一 表格的主要作用 二 表格属性 三 总结 四 合并单元格方式 一 表格的主要作用 1 表格主要用于显示 展示数据 因为它可以让数据显示的非常的规整 可读性非常好 特别是后台展示数据的时候 能够熟练运用表格就显得很重要 一个清爽简
  • 微信公众号群发接口和原创校验

    一 说明 1 1限制 二 群发图文消息 三 群发图片 文本 四 群发时使用is to all 五 上传图文消息接口 5 1 上传图文消息内的图片获取URL 订阅号与服务号认证后均可用 5 2 上传图文消息素材 订阅号与服务号认证后均可用 六