Byteballを使ったアプリやシステムを開発するための情報wikiです。現時点では管理人個人のメモとなっています。編集したい方はSlack経由でYamaokaまでご連絡下さい。

翻訳したチャットボット実装ガイドは詳しい方向けに作られているため、初心者には少し敷居が高くなっています。
そのため不慣れな方でもある程度簡単にコードの挙動を確認できるように別途ガイダンスを作成しました。
今回のガイダンスはシステム開発としてそのまま使えるような本格的なものではなく、あくまで簡単な動作テストになりますのでご注意ください。

環境設定

Witness稼働手順の2までを実行して下さい。

設定編集

以下のコマンドでディレクトリを移動して設定ファイルを開く
cd ~/byteball-witness/node_modules/headless-byteball
vim conf.js
以下の項目を編集
exports.permanent_pairing_secret = ‘ランダムな文字列を入れます。初期値のままにすると簡単に外部からハッキングできるので変更必須' 
exports.control_addresses = ['チャットを許可するデバイスのアドレス。これを設定しないとコマンドを入れても応答がない'];

コード書き換え

既存のウォレットのコードの書き換えを行います。
vim start.js
441行目の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に当たる部分をコピーして控えておいてください。

チャットボットとの接続

次に控えたペアリングコードでチャットボットとの接続を行います。
当然ウォレットは起動したままです。

Chatタブの+Add a new deviceをクリック。


下のACCEPT INVITATION FROM THE OTHER DEVICEをクリックして、


次の画面にコピーした文字列を貼り付けて次に行くとデバイスが追加される。

チャットボット動作確認

チャットに入ってhogeと打つと、
hogehoge
と返答が返ってくるのが確認できます。
また、それ以外の文字列を打ってもhogehogeとは返ってこないことも確認できるはずです。


ここまで進めたのなら、あなたは世界で最も簡単なチャットボットの作成に成功したということです。
おめでとうございます。

最後に

改めてチャットボットのガイダンスページを参考に色々なコードを試して見て下さい。
ここまでの手順を終えていれば、
return device.sendMessageToDevice(from_address, 'text', 'hogehoge');
の行を書き換えるだけでそのまま流用できます。

おまけ

今回はheadless-byteballを改造しましたが、そのまま使うと設定ファイルに書いた特定のアドレス以外からのチャットは受け付けないコードになっています。
しかし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;
}

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

当サイトは寄付歓迎です

Byteball
[1MB] [10MB] [100MB]

メニュー

メニュー



開発者ガイド

キャッシュバックプログラム

ウォレットを使用したユーザー認証(翻訳)
(調査中)JSON-RPC経由でByteballにアクセスする
コード解説(headless-byteballのstart.js)(作成中)

実用テクニック

【メニュー編集】

メンバーのみ編集できます