在开发公众号时,我们可以先不用拥有一个公众号,而使用微信给开发者提供的测试账号,官方链接:微信公众号测试账号申请 点击链接扫码登录,微信会为开发者提供一个用于开发的账号。
在页面重查看申请成功的公众号,有一个公众号二维码,用微信扫码关注该公众号,右侧就会显示关注该公众号的“微信号”,这个微信号不是你实际微信号,下面测试案例会给该“微信号”发送消息,你的微信会收到消息
官方API使用教程在这里:开发者教程-获取Access Token教程中详细说明了,Access Token的作用,存活时间和刷新建议。我们这里针对教程,使用python进行测试。
接下来我们就 通过 Python 的requests 包 获取 Access_token:
#!usr/bin/env python
#-*- coding:utf-8 -*-
"""
@author:CHERN
@file: utils_wechat.py
@time: 2020/04/12
"""
import json
import requests
# 获取token
url_token = 'https://api.weixin.qq.com/cgi-bin/token?'
res = requests.get(url=url_token,params={
"grant_type": 'client_credential',
'appid':'wx4**********15689',# 这里填写上面获取到的appID
'secret':'2a27c52b581***************edec63',# 这里填写上面获取到的appsecret
}).json()
print(res)
token = res.get('access_token')
print(res)
- 注意上面
appid
和secret
需要更换成你自己申请的,上面图片上显示的appID
和appsecret
access_token
是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token
。开发者需要进行妥善保存。
上面的程序运行成功,我们就可以使用获取到的token给关注公众号的微信号发送消息了。 我们通过 微信提供的 客服消息接口发送数据。发送消息的文档说明在“客服接口”中:客服接口
根据上面的接口调用请求说明:
#!usr/bin/env python
#-*- coding:utf-8 -*-
"""
#!usr/bin/env python
#-*- coding:utf-8 -*-
"""
@author:CHERN
@file: utils_wechat.py
@time: 2020/04/12
"""
import json
import requests
# 获取token
url_token = 'https://api.weixin.qq.com/cgi-bin/token?'
res = requests.get(url=url_token,params={
"grant_type": 'client_credential',
'appid':'wx4**********15689',# 这里填写上面获取到的appID
'secret':'2a27c52b581***************edec63',# 这里填写上面获取到的appsecret
}).json()
print(res)
token = res.get('access_token')
print(res)
url_msg = 'https://api.weixin.qq.com/cgi-bin/message/custom/send?'
body = {
"touser": 'oYIXIwA**************God1GaI', # 这里必须是关注公众号测试账号后的用户id
"msgtype": "text",
"text": {
"content": "Hello from python. Any problem, email [email protected]"
}
}
res = requests.post(url=url_msg, params={
'access_token': token # 这里是我们上面获取到的token
},data=json.dumps(body,ensure_ascii=False).encode('utf-8'))
公众号如果长时间不用(比如写完的程序,运行成功。但是过了一段时间,再运行微信接收不到消息),可能会无法收到消息。这时候取消关注这个公众号,再重新关注一下就可解决。
更多关于微信公众号测试内容,我会在这篇文章中更新。读者可以随意复试使用和转发,而不需要要作者授权。转发说明来源更加感谢。关于程序的任何问题,可以联系作者email:chaj at hit dot edu dot cn