js版WeChatチャットロボット——wechat-robot


Github:https://github.com/doterlin/wechat-robot phantomjsとウェブ端末のWeChatに基づいて開発されたチャットロボットです.使用しているWeChatアカウント(すなわちロボットのアカウントとしての役割)は個人アカウントであり、ユーザー定義のコマンドがあります.
効果
WeChatアカウントを指定できます.
カスタムコマンドはAIに渡さない:
独楽は大衆の音楽に及ばず、グループに指定して雑談することができる.
バックグラウンドプログラムでロゴを確認:
使用シーン
  • マイクロクレジットのスマートな返信、監視、統計などの
  • 便利検索
  • 娯楽(liao)音楽(mei)
  • どう使いますか
    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.より多くの実用的な命令