最終更新: byteball_dev 2017年12月13日(水) 17:28:16履歴
翻訳したチャットボット実装ガイドは詳しい方向けに作られているため、初心者には少し敷居が高くなっています。
そのため不慣れな方でもある程度簡単にコードの挙動を確認できるように別途ガイダンスを作成しました。
今回のガイダンスはシステム開発としてそのまま使えるような本格的なものではなく、あくまで簡単な動作テストになりますのでご注意ください。
XXXに当たる部分をコピーして控えておいてください。
そのため不慣れな方でもある程度簡単にコードの挙動を確認できるように別途ガイダンスを作成しました。
今回のガイダンスはシステム開発としてそのまま使えるような本格的なものではなく、あくまで簡単な動作テストになりますのでご注意ください。
Witness稼働手順の2までを実行して下さい。
以下のコマンドでディレクトリを移動して設定ファイルを開く
cd ~/byteball-witness/node_modules/headless-byteball vim conf.js以下の項目を編集
exports.permanent_pairing_secret = ‘ランダムな文字列を入れます。初期値のままにすると簡単に外部からハッキングできるので変更必須' exports.control_addresses = ['チャットを許可するデバイスのアドレス。これを設定しないとコマンドを入れても応答がない'];
既存のウォレットのコードの書き換えを行います。
hogeとhogehogeは任意の文字列に書き換えても問題ありません。
vim start.js441行目のhandleText関数内にこのように追記をします。
hogeとhogehogeは任意の文字列に書き換えても問題ありません。
switch(command){ //ここから********* case 'hoge': return device.sendMessageToDevice(from_address, 'text', 'hogehoge'); //ここまでが追加箇所********* case 'address': if (conf.bSingleAddress) readSingleAddress(function(address){ device.sendMessageToDevice(from_address, 'text', address); }); else walletDefinedByKeys.issueOrSelectNextAddress(wallet_id, 0, function(addressInfo){ device.sendMessageToDevice(from_address, 'text', addressInfo.address); }); break; case 'balance': prepareBalanceText(function(balance_text){ device.sendMessageToDevice(from_address, 'text', balance_text); }); break;
node start.js初回起動時にはウォレットの名前とウォレット用のパスワードを聞かれるので、入力しましょう。
====== my pairing code: XXXここまでうまく出来ていれば、上記のような表示が見つかるはずなので、
XXXに当たる部分をコピーして控えておいてください。
改めてチャットボットのガイダンスページを参考に色々なコードを試して見て下さい。
ここまでの手順を終えていれば、
ここまでの手順を終えていれば、
return device.sendMessageToDevice(from_address, 'text', 'hogehoge');の行を書き換えるだけでそのまま流用できます。
今回はheadless-byteballを改造しましたが、そのまま使うと設定ファイルに書いた特定のアドレス以外からのチャットは受け付けないコードになっています。
しかしstart.jsの136行目あたりの以下の部分を改造すれば、誰でもアクセスできるようになります。
しかしstart.jsの136行目あたりの以下の部分を改造すれば、誰でもアクセスできるようになります。
vim start.js改造前
function isControlAddress(device_address){ return (conf.control_addresses && conf.control_addresses.indexOf(device_address) >= 0); }改造後
function isControlAddress(device_address){ return true; }
コメントをかく