微信公众号项目开发,微信公众号后端平台
你肯定在朋友圈里见过这样的图片:
虽然大家都知道是假的,但是就是爱玩,也吸引了不少粉丝到微信官方账号。
对于微信官方账号,有时候需要回图,那么今天就来说说如何成功回图。
主要流程
获取图片
图像处理和上传
返回图片
首先需要获取图片的信息,通过@ robot.image获取用户的图片信息。
#用户发图片@ robot.imagedef博客(消息,会话打印(dir (message))打印(消息。_ _ dict _ _) print (msg ,message.img)。我们关注图片的下载路径:message.img。
获取图片
通过图片路径下载图片:
def request_download(img_url,img_save_path):导入请求r=requests . get(img _ URL)with open(img _ save _ path, WB )as f:f . write(r . content)
图片处理及上传
图像处理:在这里,你可以随心所欲。使用Python为头像添加圣诞帽或圣诞老人图标。
图片上传:
上传临时素材接口,获取临时图片的media_id返回图片。
通过调用上传临时资料的官方接口(我这里的图片只是暂时归还,不需要永久保存)。
token的值是有时效性的,所以官方建议不要每次使用都重新获取(后面会缓存)。
Get _ access _ token (appid,secret): 获取access _ token并每100分钟刷新一次 URL= https://API . weixin . QQ . com/CGI-bin/token?grant _ type=client _ credential appid={ } secret={ } 。format(appid,secret)r=requests . get(URL)parse _ JSON=JSON . loads(r . content . decode())token=parse _ JSON[ access _ token ]return token def img _ upload(media type,name):token=get _ access _ token(app _ id,secret)URL= https://API . weixin . QQ . com/CGI-bin/media/upload?access_token=%stype=%s % (token,media type)files={ media :open( { } )。format(name), rb)} r=requests.post(url,files=files)parse _ JSON=JSON . loads(r . content . decode())return parse _ JSON[ media _ id ]
返回图片
回复=图片回复(media _ id=media _ id,message=message)返回回复这样一张完整的图片,下载、处理、上传、返回都完成了。
#用户发图@ robot.imagedef blog (message,Session):changdu=str(len(Session))print( changdu ,Session) #保证图片名称唯一uuid=create _ uuid()img _ URL=message . img img _ path=。/Christmas _ hat/image/uuid 。png img _ outpath=。/Christmas _ hat/Image/out uuid 。png # print (msg ,message . img)# print(dir(message))#获取一个对象的所有属性# print (message。_ _ dict _ _) # print ( N 消息。MediaId) #下载图片请求_下载(img _ URL,img _ path) #图像处理add_hat(img_path,img_outPath) #上传到服务器media_id=img_upload(image ,Img _ out path)# message . MediaId=media _ id #返回消息reply=image reply(media _ id=media _ id,message=message)返回回复
微信官方账号后台开发:
Python微信官方账号后台开发教程001-搭建基础服务器
Python微信官方账号后台开发002-回复关注,回复关键词,回复收到的消息
Python微信官方账号后台开发003:自定义菜单