js版WeChatチャットロボット——wechat-robot
5473 ワード
Github:https://github.com/doterlin/wechat-robot
効果
WeChatアカウントを指定できます.
カスタムコマンドはAIに渡さない:
独楽は大衆の音楽に及ばず、グループに指定して雑談することができる.
バックグラウンドプログラムでロゴを確認:
使用シーンマイクロクレジットのスマートな返信、監視、統計などの 便利検索 娯楽(liao)音楽(mei) どう使いますか
1.設置環境
ソースをダウンロードして、以下の環境をインストールします.
1.node.js.phantomjs.3.casperjs
2.設定
依存と運転コマンドのインストール:
スキャンコードを登録してWeChatを実行した後、次のようなヒントを見たら、弾いたQRコードをスキャンします.
指令とAI
その前に二つの方法が必要かもしれません.
メッセージ.send()
作成コマンド
これは今も研究していません.
デバッグ
デバッグコードの場合は、
二次開発が便利なら、本Githubに
バージョン予告
次のバージョンの更新は以下の内容に限定されません.
1.複数のWeChatアカウントを結合することをサポートする2.UI化コンソール(
phantomjs
とウェブ端末のWeChatに基づいて開発されたチャットロボットです.使用しているWeChatアカウント(すなわちロボットのアカウントとしての役割)は個人アカウントであり、ユーザー定義のコマンドがあります.効果
WeChatアカウントを指定できます.
カスタムコマンドはAIに渡さない:
独楽は大衆の音楽に及ばず、グループに指定して雑談することができる.
バックグラウンドプログラムでロゴを確認:
使用シーン
1.設置環境
ソースをダウンロードして、以下の環境をインストールします.
1.node.js.phantomjs.3.casperjs
2.設定
/config/const.js
を見つけて配置します.//
var ROBOT_NAME = " ";
module.exports = {
// web
'URL' : 'https://wx.qq.com/',
//
'ROBOT_NAME' : ROBOT_NAME,
// apiKey api
//AI (http://www.tuling123.com/)
// , apikey 5000 / 。
'TURING_APIKEY': '99fecec3424d416898b91b0998e2b26a',
'TURING_URL' : 'http://www.tuling123.com/openapi/api',
// , ; 。
//
'TARGET_NICK' : ' ',
//
'HELLO_WORLD' : '[ ]' + ROBOT_NAME + '[ ] ...',
}
3.運転と登録のWeChat依存と運転コマンドのインストール:
npm install
capserjs index.js
ヒントpython
などがあれば、pythonをインストールして全体的に実行できるようにしてください.スキャンコードを登録してWeChatを実行した後、次のようなヒントを見たら、弾いたQRコードをスキャンします.
...
, :"static/img/qr.jpg".
, ( )
で携帯電話のスキャンコードを使ってログインを確認してください.
と
の提示があったら大丈夫です.これで使用手順が完了しました.次の章では、機能を拡張する方法を紹介します.指令とAI
その前に二つの方法が必要かもしれません.
メッセージ.send()
// :src/utils/message.js
// message.send
// :
var message = require('/src/utils/message');
...
casper.then(function(){
message.send(this, ' ');
})
ajax()/ajax.get()/ajax.post()/ajax.getJSON()// :src/utils/ajax.js
// ajax
// :
var ajax= require('/src/utils/ajax');
...
casper.then(function(){
ajax(this, "http://example.com/getInfo", 'get', {uid: 123}, function(res){
console.log(JSON.stringify(res));
});
//
ajax.get(this, "http://example.com/getInfo", {uid: 123}, function(res){
console.log(JSON.stringify(res));
});
//jsonp
ajax.getJSON(this, "http://example.com/getInfo?calback=?", {uid: 123}, function(res){
console.log(JSON.stringify(res));
});
})
必要に応じてロボットの機能を拡張できます.作成コマンド
// AI
//
//-------------------------------------------------------------------
//
// `/src/directive/exact.js` 。
//key , , msgContent( ) casperIns(casper ), :
// ' ' 。
module.exports = {
' ': function (msgContent, casperIns) {
message.send(casperIns, '[ ] [ ]
\r([ ] [ ])');
casperIns.echo(' , 。')
return casperIns.exit();
}
}
//-------------------------------------------------------------------
//
// `/src/directive/fuzzy.js` 。
// , ;
// src/directive/explain , weather.js:
// ' + ', api
var weather = require('./explain/weather');
module.exports = {
'/ /g': weather
}
//weather.js :
var ajax = require('../../utils/ajax');
var message = require('../../utils/message');
var formatWeather = function(local, weather) {
// json ,
}
var weather = function(msgContent, casperIns, regex) {
var local = msgContent.replace(/ | /, '');
var resource = 'http://wthrcdn.etouch.cn/weather_mini?city=' + encodeURIComponent(local);
ajax.get(casperIns, resource, {}, function(res){
var weather = JSON.parse(res);
if (weather.status == 1000) {
message.send(casperIns, formatWeather(local, weather));
} else {
message.send(casperIns, ' 。 " "。')
}
});
}
module.exports = weather;
//-------------------------------------------------------------------
完璧AIこれは今も研究していません.
デバッグ
デバッグコードの場合は、
capserjs
を選択画像のlogLevel
フィールドに設定してもいいです.info
には、より多くのphantomjs
ロゴが表示されます.より多くの構成はcasperjs文書に移ってください.// :config/casper.js
module.exports = {
clientScripts: [
'static/js/jquery.js'
],
pageSettings: {
loadImages: true,
userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.14 Safari/537.36',
},
logLevel: "info", //here
viewportSize: {width: 1300, height: 900},
verbose: true,
waitTimeout: 1000 * 60 * 60 * 24 * 365,
onWaitTimeout: function(){
console.log( 'waitFor* ...' )
}
}
また、各ステップを実行するときは、ブラウザのスクリーンショットを/static/img
に保存し、ブラウザのレンダリング状況を確認するのに便利である.例えば、新しいメッセージを取得するたびに、図を切り取り、lastNewMsgContent.png
に上書きする.二次開発が便利なら、本Githubに
Fork
貢献してください.共同でプロジェクトを改善します.バージョン予告
次のバージョンの更新は以下の内容に限定されません.
1.複数のWeChatアカウントを結合することをサポートする2.UI化コンソール(
node.js web
同期コマンドのlogsおよび一部の動作)3.画像の識別と返信(闘図のような)をサポートする4.より多くの実用的な命令