微信号与公众号开发可以为其提供新的功能。
微信号 微信机器人 Wechaty 支持多种登录方式,目前可以正常使用。
nodejs版 新手配置 可直接使用配置好的Google Cloud Shell或Gitpod环境,如下。
1 2 3 4 5 # Google Cloud Shell https://ssh.cloud.google.com/cloudshell/editor?cloudshell_git_repo=https%3A%2F%2Fgithub.com%2Fwechaty%2Fwechaty-getting-started&cloudshell_open_in_editor=examples/ding-dong-bot.ts&cloudshell_workspace=.&cloudshell_tutorial=examples/tutorials/google-cloud-shell-tutorial.md # Gitpod https://gitpod.io/#https://github.com/wechaty/wechaty-getting-started
配置到服务器 建议在Linux环境下运行,需要提前安装node和npm。
在终端输入以下命令以克隆新手仓库。
1 2 git clone https://github.com/wechaty/wechaty-getting-started cd wechaty-getting-started
输入以下命令以安装缺少的依赖。
1 sudo apt install gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget
输入以下命令即可启动。
1 2 export WECHATY_PUPPET=wechaty-puppet-wechat npm start
python版 在终端输入以下命令。
1 2 3 4 5 6 7 8 9 10 11 12 # 克隆仓库 git clone https://github.com/wechaty/python-wechaty-getting-started cd python-wechaty-getting-started # 安装依赖 pip install -r requirements.txt # 或直接pip install wechaty # 运行 export WECHATY_PUPPET_SERVICE_TOKEN=python-wechaty-uos-token export WECHATY_PUPPET=wechaty-puppet-wechat python examples/ding-dong-bot.py
编程 API 1 https://wechaty.github.io/wechaty/
ItChat 用于与微信连接。
注意,该库使用微信网页版作为接口。若登录时提示為了你的帳號安全,此 WeChat ID 不能登入 WeChat 網頁版
,则无法使用此库。
安装 可通过以下命令安装。
代码 自动回复 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 #-*-coding:utf-8 -*- import itchat, re from itchat.content import * from time import sleep import random # 注册消息类型为文本(即只监控文本消息,不监控语音/图片/表情包/文件等) # isGroupChat=True开启群聊模式,即只监控群聊内容 (不开启则只监控个人聊天) @itchat.msg_register ([TEXT], isGroupChat=True) # @itchat.msg_register ([TEXT]) def text_reply(msg): # msg是消息体,msg['Text']用来获取消息内容 # 第一个单引号中的内容是关键词,使用正则匹配,可以自行更改,使用.*表示任意内容 # 若使用中文,2.x版本的Python会报错,需要u前缀表示unicode编码 message = msg ['Text'] print (message) match = re.search ('.*', message) # match = re.search (u'年 | 春 | 快乐', message) # 随机等待一定秒数再回复 second = random.randint (1,10) sleep (second) if match: # msg['FromUserName']用来获取用户名,发送消息给对方 from_user_name = msg ['FromUserName'] print (from_user_name) itchat.send (('====test message'), from_user_name) # 第一个单引号中的内容是回复的内容,可以自行更改 # 热启动,退出一定时间内重新登录不需要扫码 (把二维码图片存下来,下次接着使用) itchat.auto_login (hotReload=True) # 开启命令行的二维码 itchat.auto_login (enableCmdQR=True) # 部分系统可能字幅宽度有出入,可以通过将enableCmdQR赋值为特定的倍数进行调整 # 如部分的linux系统,块字符的宽度为一个字符(正常应为两字符),故赋值为 2 # itchat.auto_login (enableCmdQR=2) # 默认控制台背景色为黑色,若背景色为白色,可以将enableCmdQR赋值为负值 itchat.auto_login (enableCmdQR=-1) # 用于Mac itchat.auto_login (enableCmdQR=-2) # 运行 itchat.run ()
接入机器人 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 #-*-coding:utf-8 -*- import itchat, requests from itchat.content import * from time import sleep import random # 机器人的 apikey APIKEY = '376cb2ca51d542c6b2e660f3c9ea3754' # 封装一个根据内容调用机器人接口,返回回复的方法 def get_response(msg): # 构造了要发送给服务器的数据 apiUrl = 'http://www.tuling123.com/openapi/api' data = { 'key' : APIKEY, 'info' : msg, 'userid' : 'wechat-robot', } try: r = requests.post (apiUrl, data=data).json () # 字典的get方法在字典没有'text'值的时候会返回None而不会抛出异常 return r.get ('text') # 为了防止服务器没有正常响应导致程序异常退出,用try-except捕获异常 # 如果服务器没能正常交互(返回json或无法连接),进入下面的return except Exception,err: # 打印一下错误信息 print (err) # 将会返回一个None return # @itchat.msg_register ([TEXT], isGroupChat=True) @itchat.msg_register ([TEXT]) def tuling_reply(msg): message = msg ['Text'] print (message second = random.randint (1,10) sleep (second) # 为了保证在图灵apikey出现问题的时候仍旧可以回复,设置一个默认回复 defaultReply = 'I received:' + message # 如果图灵apikey出现问题,那么reply将会是None reply = get_response (message) # a or b指如果a有内容则返回a,否则返回b return reply or defaultReply itchat.auto_login (hotReload=True) itchat.auto_login (enableCmdQR=True) itchat.run ()
公众号 图文排版 编辑器自动保存 点击Chrome浏览器的TamperMonkey扩展程序,选择添加新脚本
,复制以下内容并保存即可。
1 2 3 4 5 6 7 8 9 10 11 12 13 // ==UserScript== // @name 微信推文编辑器自动保存 // @version 0.1 // @description 微信推文编辑器自动保存 // @author 内咸禾方皇 // @match https://mp.weixin.qq.com/* // @grant none // @run-at document-end // ==/UserScript== (function() { 'use strict'; var time = window.setInterval(function(){document.querySelector("#js_submit").click()},60000); })();
Markdown to 公众号一键转换器 可用Markdown语法进行公众号排版。打开以下链接,完成编写后点击转换,然后将预览区中的内容复制到微信图文编辑器即可。
公众号开发 服务器绑定 服务器用于处理发送到公众号的消息请求,并完成消息发送。
准备好VPS后通过SSH连接,以CentOS为例,进入root用户后执行以下命令以安装必要依赖。
1 2 3 4 5 6 7 8 9 10 11 12 yum install vim yum install libxml2 yum install libxslt yum install python pip install --upgrade pip # 对于python2 pip install web.py==0.51 # 对于python3 pip install web.py pip install lxml
完成后输入以下命令新建py文件。
内容如下。
1 2 3 4 5 6 7 8 9 10 11 12 # -*- coding: utf-8 -*- # filename: main.py import web from handle import Handle urls = ( '/wx', 'Handle', ) if __name__ == '__main__': app = web.application(urls, globals()) app.run()
保存后继续新建文件。
内容如下,其中token可任意填写。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 # -*- coding: utf-8 -*- # filename: handle.py import hashlib import web class Handle(object): def GET(self): try: data = web.input() if len(data) == 0: return "hello, this is handle view" signature = data.signature timestamp = data.timestamp nonce = data.nonce echostr = data.echostr token = "xxxx" #可任意 list = [token, timestamp, nonce] list.sort() sha1 = hashlib.sha1() map(sha1.update, list) hashcode = sha1.hexdigest() print "handle/GET func: hashcode, signature: ", hashcode, signature if hashcode == signature: return echostr else: return "" except Exception, Argument: return Argument
保存后运行以下命令执行脚本。如果提示socket错误,则需要开启80端口。
在浏览器输入以下链接以访问刚才运行脚本所搭建的网页,若显示hello, this is handle view
,则成功。
进入公众号后台并选择开发-基本配置-修改配置,内容如下,然后提交即可。
选项
内容
URL
http://[外网IP]/wx
Token
刚才填写的内容
消息加解密方式
明文模式
小游戏 跳一跳脚本 1 2 https://github.com/wangshub/wechat_jump_game https://www.jianshu.com/p/ff973a5910ae
WebDriverAgent 安装 在终端输入以下命令以下载仓库并切换路径。
1 2 git clone https://github.com/appium/WebDriverAgent cd WebDriverAgent
【过时】旧版的附加步骤
在终端输入以下命令,以安装Carthage并运行初始化脚本。
1 2 brew install carthage ./Scripts/bootstrap.sh
双击打开WebDriverAgent.xcodeproj,切换到WebDriverAgentRunner,选择真机并运行。若跳出签名问题,则添加签名并更改App的BundleID。
常见问题 Building for iOS Simulator, but the linked and embedded framework ‘My. framework’ was built for iOS + iOS Simulator. 点击工程文件,选择TARGETS下的App项目,在Build Settings下将Validate Workspace设置为Yes。
‘assign’ property of object type may become a dangling reference; consider using ‘unsafe_unretained’ 将assign改为strong即可。
参考教程 公众号开发指南 1 https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Getting_Started_Guide.html
ATX 文档 - iOS 真机如何安装 WebDriverAgent 1 https://testerhome.com/topics/7220
Building for iOS Simulator, but the linked framework ‘**.framework’ was built for iOS 1 https://stackoverflow.com/questions/63267897/building-for-ios-simulator-but-the-linked-framework-framework-was-built
WebDriverAgent常见错误 1 https://www.jianshu.com/p/d4609fbb6a87
ubuntu下运行Puppeteer 1 https://www.cnblogs.com/mokliu/p/12401265.html
python-wechaty: 免费微信机器人 1 https://zhuanlan.zhihu.com/p/365629085