微信群发功能要求要微信认证。微信认证要求要企业账号、而且需要认证费用。
本篇文章教大家非微信认证账号如何群发公众号信息
本篇文章基于python语言开发,其他的语言一样的方式,不需要拘泥于语言
注意事项:
- 要求有微信公众平台登陆状态,也就是Cookie数据, 如何通过Python调用微信公众平台并保存登录态,请看我的另外一篇文章python调用微信登陆
- 程序只能绕过群发要求微信认证功能,不能绕过次数限制
- 群发次数限制为一天一次,微信限制的。 第二次调用会返回异常
具体代码如下:
import json
import os
import time
from datetime import datetime
import random
import requests
from lxml import html, etree
class graspArticle:
def __init__(self, infos_return, session):
self.url = "https://mp.weixin.qq.com"
self.token = self.extract_token(infos_return['redirect_url'])
self.session = session
self.headers = {
'Host': 'mp.weixin.qq.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Edg/86.0.622.63'
}
# 非官方API,获取你的草稿文章
# 因为发送文章不能使用文章编码,也就是官方返回的media_id,必须使用文章ID
def get_news_list(self, page=0, pagesize=10, type=77):
t = str(int(time.time())) + str(random.randint(100, 999))
begin = page * pagesize
submit_url = f"https://mp.weixin.qq.com/cgi-bin/appmsg?token={self.token}&lang=zh_CN&type={type}&action=list&begin={begin}&count=10&f=json&random=0.{t}"
headers = {
'Referer': f"https://mp.weixin.qq.com/cgi-bin/masssendpage?t=mass/send&token={self.token}&lang=zh_CN",
'X-Requested-With': 'XMLHttpRequest',
}
response = self.session.get(submit_url, headers=headers)
data = json.loads(response.text)
if data['base_resp']['ret'] != 0:
raise Exception(f"获取图文列表失败,错误信息: {data['base_resp']['ret']} - {data['base_resp']['err_msg']}")
return data['app_msg_info']['item']
# 非官方API,群发图文信息
# 这里的app_msg_id,通过调用get_news_list来返回
# 注意,非认证用户群发只能调用一次! 群发成功后,第二次调用则会提示异常
def send_mass(self, app_msg_id):
url = 'https://mp.weixin.qq.com/cgi-bin/masssend'
payload = {
'type': '10',
'appmsgid': app_msg_id,
'sex': '0',
'groupid': '-1',
'synctxweibo': '0',
'synctxnews': '0',
'country': '',
'province': '',
'city': '',
'imgcode': '',
'token': self.token,
'lang': 'zh_CN',
'random': random.random(),
'f': 'json',
'ajax': '1',
't': 'ajax-response',
}
headers = {
'Referer': f"https://mp.weixin.qq.com/cgi-bin/masssendpage?t=mass/send&token={self.token}&lang=zh_CN",
'X-Requested-With': 'XMLHttpRequest',
}
response = self.session.post(url, headers=headers, data=payload)
data = json.loads(response.text)
if data['base_resp']['ret'] != 0:
raise Exception(f"群发图文信息失败,错误信息: {data['base_resp']['ret']} - {data['base_resp']['err_msg']}")
完整源代码可以通过微信公众账号客服留言索要,目前还未折腾自动发放资源功能
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/181681.html