ロボットブラウザ・マニュアル<ツール番号:ROBOTFRAMEWORK>

このページは、「ロボットブラウザ」
アプリの利用者マニュアルです。


システム概要



推奨環境

 ロボット ロボホン  システムバージョン
 PC OS Windows 7 SP1/8.1/10 (32bit/64bit)
 .NET Framework 4.5.2以上
 Visual Studio 2013 Visual C++ 再頒布可能パッケージ ダウンロードはこちら
※インストール時に自動的にインストールされます。




PC側のセットアップ ~ロボットブラウザアプリ(中継サービス)を準備する

(1) ロボットブラウザアプリを起動する

ロボホンとパワーポイントの中継をするためのアプリRobotBrowser.exe」を起動します(ダウンロードはこちら)。

(2) APIキーを発行してアプリの起動

事前準備としてロボットデバイスマネージャー for クラウドのダッシュボードからAPIキーを発行します。
アプリを起動するとAPIキー・ドメイン・ユーザーIDを入力する画面が出ますので
 *APIキーはロボットデバイスマネージャー for クラウドで発行したAPIキーを入力
 *ドメインは御社のドメインを入力
 *ユーザーIDは任意で入力

入力後、チェックを押してAPIキー・ドメイン・ユーザーIDが正しいものであれば、利用可能になります。

(3) ロボットブラウザアプリ実行PCのIPアドレスを確認する

ロボットブラウザアプリが置いてあるPC上で、「コマンドプロンプト」より下図のコマンド(ipconfig)を実行して、
PC側のIPアドレス(IPv4アドレス)を確認します。

・「ファイル名を指定して実行」画面を表示してコマンドプロンプトを表示
パソコンで Ctrl+R と打つと
「ファイル名を指定して実行」が開きますので「cmd」と入力して「OK」をクリック


・「ipconfig」と入力
パソコンに割り当てられているIPアドレスが確認できます。
※下図は弊社での例です。


(4) 疎通確認する

中継サービスアプリ「RobotBrowser.exe」を起動して、疎通確認をする。
同じLANにいる、他の適当なPC(※LAN疎通は既に通っているものとします)で、ブラウザを起動し、外部疎通確認を行います。
ブラウザのアドレス入力欄に、
http://192.168.222.44:7001/server2device

などと入力し、下図のとおり、API応答が返ってきていれば、ネットワーク疎通設定&中継サービスexe起動は成功しています。


※使用するブラウザは、ChromeやFirefoxをおすすめします。IEやEdgeでは、結果が表示ではなく、ダウンロードになる場合があります。
赤字部分はipconfigで確認した実際のパソコンの設定に合わせてください。
※URLの青字部分は、大文字と小文字を正確に入力してください。

(5) その他の機能

ポート番号を変更したい場合、うまく接続できない場合はこちら


ロボット側のセットアップ ~ ロボホン の準備をする

(1) ロボホンのアプリを導入する

ロボットブラウザのアプリを導入するためには、弊社にてアプリをロボホンにインストール作業をする必要があります。
問合せ: sales@sateraito.co.jp までご連絡ください!

(2)ロボホンのアプリにIPアドレスを設定する

クイック設定を利用する

ロボホンが接続しているWi-Fiと同じWi-Fiに接続し、PC側ロボットブラウザアプリを起動
設定 > ロボホン・クイック設定 を選択

ロボホン側のロボットブラウザを起動し、
設定(ロボットブラウザ設定)> クイック設定 を選択
ロボホンの背中に表示される数字を、PCのクイック設定に入力し、「OK」

→ 

接続に成功すると、PC側に下記のポップアップが表示されます


(3-1) クイック設定で接続できない場合、中継サービス実行PCのIPアドレスを確認する

ロボットブラウザと中継サービスexeが置いてあるPC上で、「コマンドプロンプト」より下図のコマンド(ipconfig)を実行して、
PC側のIPアドレス(IPv4アドレス)を確認します。
※下図は弊社での例です。

(3-2) ロボホンのアプリにIPアドレスを設定する

ロボホンにインストールされているアプリから「ロボットブラウザ設定」を選択します。
ポストするサーバーとポーリングするサーバーに「PCのIPアドレス:ポート番号(※区切りは半角コロン)」を入力します。
※ポート番号は端末側にあるロボットブラウザの設定に記入しているポート番号を入力して下さい。
例)
ポストするサーバー
192.168.222.44:7001
ポーリングするサーバー
192.168.222.44:7001

(4) 画面をトップ画面へ戻す

ロボホンでロボットブラウザ・プレゼンアプリを使用する際はアプリのトップ画面を表示させておく必要があります。




ロボットブラウザのセットアップ

(1) APIキーを発行してアプリの起動

事前準備としてロボットデバイスマネージャー for クラウドのダッシュボードからAPIキーを発行します。
アプリを起動するとAPIキー・ドメイン・ユーザーIDを入力する画面が出ますので
 *APIキーはロボットデバイスマネージャー for クラウドで発行したAPIキーを入力
 *ドメインは御社のドメインを入力
 *ユーザーIDは任意で入力

入力後、チェックを押してAPIキー・ドメイン・ユーザーIDが正しいものであれば、利用可能になります。

(2) 設定について

[1] 「基本設定」タブを開きます。


 項目   説明
言語 日本語と英語を選択できます。デフォルトは日本語です。
初期URL ブラウザ起動時に表示するサイトURLを設定します。
ステータスバーを表示しますか。 ブラウザの下端に、イベントとして発生しているロボットスクリプトをリアルタイムで表示させることができます。
最初はチェックを入れて、表示させるようにしておくことをおすすめします。
慣れてきて、実運用開始する際に、見えるのが望ましくない場合、チェックを外してください。
アラート設定 定時起動させたいページを登録することができます。この設定は、慣れてきてから考慮するので問題ありません。
「設定」ボタンを押すと、左図の登録済一覧画面が表示されます。
「追加」ボタンを押すと、右図の個別アラート設定登録画面が表示されます。
・時間の設定:画面を表示させたい時分を入力します。
・URLの設定:定時起動させたいページのURLを入力します。
・曜日の設定:定時起動させたい曜日をチェックボックスで指定できます。無指定の場合、ブラウザ起動後の最初の指定時刻の1回のみ、が指定されたことになります。
・このアラームを使用:このアラート設定の有効・無効を切り替えることができます。


[2] 「詳細設定」タブを開きます。


 項目   説明
サーバーコネクト設定 接続するサーバーの設定を追加・削除・変更する事が出来ます。

「設定」ボタンを押すと、左図の登録済一覧画面が表示されます。
「追加」ボタンを押すと、右図の個別サーバー設定登録画面が表示されます。
・PORTの設定:設定したいポート番号を指定
・ポストするサーバー:外部のサーバー・ラズパイコネクター旧ロボットサーバーを使用する場合にURLを指定
・ポーリングするサーバー:外部のサーバー・ラズパイコネクター旧ロボットサーバーを使用する場合にURLを指定
・接続先:ロボットコネクター・・・ロボットブラウザにコネクターを作成する場合
     ラズパイコネクター・・・ラズパイコネクターに接続する場合
     サーバーコネクター・・・外部のサーバー・旧ロボットサーバーに接続する場合
・この接続先をデフォルトとして使用:このコネクターをデフォルトとして使用する事ができます。


ロボット名 半角英数字の任意名称でOKですが、「robohon」を入力します。
プログラムのバージョン 半角で「001」を入力してください。
ロボットタグを表示する ブラウザで読み込むHTMLに書かれたロボットタグを表示できるようになります。ここではチェックを入れないでOKです。
ポーリングの秒数 半角整数で入力します。推奨値は「1」です。
イベント中のブラウザの動作 初回時は、「ブラウザを動作しないようにする」を選択することをおすすめします。

各選択肢の意味は、次の通りです。
①「イベントを動作しないようにする」:ロボットが何らかの動作している時に、ブラウザ側でボタン操作等を行えますが、ブラウザから送信されるイベント(ロボット指示)を無効化します。
同一のロボットタグ内に処理は非同期処理になります。
②「ブラウザを動作しないようにする」:ロボットが何らかの動作している時に、ブラウザ側でボタン操作等を行えないようにします(動作中はロボット指示がロボットに飛ばない)。
同一のロボットタグ内に処理は同期処理になります。
③「イベントをサーバーに送る」:ロボットが何らかの動作している時に、ブラウザ側でボタン操作等を行い、ロボット指示をロボットに飛ばすことができますが、中継サーバーexeで、その指示を一度保持します。ロボットは、その時に行っていた動作が終わった後、次の動作命令を受け取って、動作を実行します。
同一のロボットタグ内に処理は非同期処理になります。

ーーーー 以下作成中 ーーーー
[3] 「Office365」タブを開きます。
 Excel Onlineに書き込みを行う際の設定です。ただし、同梱の「アンケート」を動作させない場合は、下記の項目は未入力でもOKです。

 項目   説明
アカウント Office365のアカウント(メールアドレス)を入力します。
パスワード Office365のアカウントのパスワードを入力します。
テナント お使いのOffice365のテナントIDを入力します。詳細は社内の情報システム担当者さまにお問い合わせください。
スプレッドシートのパス 入力したアカウントのOne Drive上での、書き込み対象としたい.xlsxファイルのパスを入力します。
まずは、One Driveのルートに「test.xlsx」などの、新規のファイルを用意し、ここに「test.xlsx」と入力するとよいでしょう。
スプレッドシートのID スプレッドシートのパスを入力していれば、未記入でOKです(上級者向け指定項目)。
ワークシート名 上記で指定した.xlsxファイル内のワークシート名を指定します。まずは「Sheet1」などでよいでしょう。


[4] 「Office365 Mail」タブを開きます。
 Office365のメールから、送受信する際の設定です。ただし、同梱の「受付」を動作させない場合は、下記の項目は未入力でもOKです。

 項目   説明
アカウント Office365のアカウント(メールアドレス)を入力します。
パスワード Office365のアカウントのパスワードを入力します。
テナント お使いのOffice365のテナントIDを入力します。詳細は社内の情報システム担当者さまにお問い合わせください。


[6] 「Office365 Calendar」タブを開きます。
 Office365の予定表から、予定情報を取得したり予定を登録する際の設定です。

 項目   説明
アカウント Office365のアカウント(メールアドレス)を入力します。
パスワード Office365のアカウントのパスワードを入力します。
テナント お使いのOffice365のテナントIDを入力します。詳細は社内の情報システム担当者さまにお問い合わせください。


[7] 「Office365 OneNote」タブを開きます。
 OneNote Onlineに書き込みを行う際の設定です。

 項目   説明
アカウント Office365のアカウント(メールアドレス)を入力します。
パスワード Office365のアカウントのパスワードを入力します。
テナント お使いのOffice365のテナントIDを入力します。詳細は社内の情報システム担当者さまにお問い合わせください。
ページ名 入力したアカウントのOneNote上での、書き込み対象としたいページ名を入力します。
セッション名 入力したアカウントのOneNote上での、書き込み対象としたいページの存在するセクション名を入力します。


[8] 「OK」を押下すると、ロボットブラウザが起動します!
 下記のような画面が出てくれば成功です。

  1. ロボットブラウザの右上にある、「三」をクリックし、「ブックマーク」から「受付」を実行してみます。
    読み上げを開始します。読み上げが終わると、ボタンが押せるようになります。
    「社員名から検索」「部署一覧を確認」を一通り確認してみてください!
    うまくいったら、「アンケート」も実施してみてください!(※Office365のアカウントが必要になります。Excel Onlineシートの2行目から、回答を追記します)


    ※実行して数秒経過しても読み上げを開始しない場合は、下記の手順で再度実行してみてください。
    [1] 一度RobotBrowserを終了する。
    [2] 中継サーバーで「停止」を押す。
    [3] 中継サーバーの「ツール」から「すべての命令をクリア」を実行する。
    [4] 中継サーバーで「再開」を押す。
    [5] RobotBrowserを再度、起動する。
    ※Palmi側の「ロボワン」が終了してしまっている場合もあるので、その場合は再度、「ロボワンをして」と指示してください。


(3) Office365系APIを使用する場合

下記URLを順番にご使用のブラウザからアクセスしてください。
アクセスするとマイクロソフトのログイン画面が出ますので全体管理者でログインしてください。



(4) テンプレート「受付」「アンケート」を改造してオリジナルのHTMLを作る

「受付」や「アンケート」は、HTML/CSS/JavaScriptで記述されています。
そのHTMLの中に、「ロボットタグ<robot>」という特殊な命令を挿入することで、ロボットに対する指示を実現しています。
各サンプルは、RobotBrowserの下記のフォルダの中にまとめられています。
このフォルダを参考にして、内容を編集することで、オリジナルの受付(名簿、メールアドレス整備等)や、アンケート(設問変更)を実現することができます!
 「受付」:SampleReception
 「アンケート」:SampleWorkSheet
 「ロボット会話」:SampleRobotConversation

※「ロボット会話」は、ロボットタグのSpeakコマンドを試すためのツールです。業務サンプルアプリではありません。
入力欄に「speak:こんにちは」のように、「speak:」(すべて半角)命令を付けて日本語を入力して送信すると、発話試験ができます。


(5) その他の機能

・「F5」キーを押すことで、再読み込みさせることができます。
・「F11」キーを押すことで、フルスクリーンモードにすることができます。タブレットを用いてKIOSK端末的な使い方をする場合にご利用ください。戻す場合は再度F11を押します。



ロボットスクリプト・リファレンス

■ 概要


■ 書式

HTMLの<body>タグの後に、HTMLのコメントアウトで囲い<robot>タグを記述します。
*HTMLのコメントアウトは記述しなくでも大丈夫ですが、<robot>タグ内にHTMLのタグを使用する場合は必ず記述してください。

<robot>書式

<robot event=open robot_type=palmi001 version=001>
    Speak:こんにちは
</robot>

 属性キー   必須  説明
event 必須 その<robot>タグが発動するタイミングを指定する。
指定できるパターンは、open/close/任意のキー値、の3パターン。各パターンの使い方は下記の通り。


open:そのHTMLページをブラウザで表示させた直後に、その<robot>タグ内に記述されたロボットスクリプトを実行させる。
*eventキーを指定しない場合はopenとして実行されます。

<!--
    <robot event=open >
        Speak:はじめまして!
    </robot>
-->
close:そのHTMLページがブラウザで別のページで遷移する直前に、その<robot>タグ内に記述されたロボットスクリプトを実行させる。
<!--
    <robot event=close >
        Speak:バイバイまた来てね
    </robot>
-->
任意のキー値(例:test100):適当な英数字文字列(※open/closeは予約語のため、それら以外)を指定する。
主に、ボタンアクションに連動させて<robot>タグを動作させたい場合に使用する。
「robot://xxxx」のURL形式で呼び出し(※xxxxの部分は何でもよい)、POSTでeventキー値にtest100を渡す。下記例を参照。
<form action="robot://post.cgi" method="POST">
    <input type="hidden" name="event" value="test100" />
    <input type="submit" value="こんにちは発話ボタン" />
</form>
 :
 :
<!--
    <robot event=test100 >
        Speak:こんにちは
    </robot>
-->
<robot>タグは、eventの属性値が異なるものを、複数記述することができる。記述できる<robot>要素の数に制限はない。
下記の例では、ページ表示時に「はじめまして!」と発話し、「こんにちは発話ボタン」と書かれたボタンを押下することで「こんにちは」と発話し、「次のページ」リンクをクリックすると「バイバイまた来てね」と発話する。

<html>
  <body>
    <form action="robot://post.cgi" method="POST">
      <input type="hidden" name="event" value="test100" />
      <input type="submit" value="こんにちは発話ボタン" />
    </form>
    <a href=".next.html">次のページ</a>
  </body>
  <!--ここまでは通常のHTMLの文法で記述して問題ない、ここからrobotタグの世界-->
    <!--  
        <robot event=open>
            Speak:はじめまして!
        </robot>
        <robot event=close>
            Speak:バイバイまた来てね
        </robot>
        <robot event=test100 >
            Speak:こんにちは
        </robot>
    -->
</html>
robot_type 任意(省略可) ロボットスクリプトの構成管理用プロパティ。無指定時、設定「詳細」の「ロボット名」が適用される。
※複数の異なるロボットに対する記述を実現するための、将来拡張用。単一のロボットを扱う場合は、原則、省略して問題ありません。
version 任意(省略可) ロボットスクリプトの構成管理用プロパティ。無指定時、設定「詳細」の「プログラムのバージョン」が適用される。
※複数の異なるロボットに対する記述を管理するための、将来拡張用。単一のロボットを扱う場合は、原則、省略して問題ありません。

JavaScriptからロボットスクリプトを指定したい場合、下記のようにします。

JavaScriptからロボットスクリプトを指定する例

var robotText = '<robot event=test001>'
                    + 'Speak:こんにちは'
                    + '</robot>';
RobotBrowser.sendRobotTag(robotText);

JavaScript上でrobotタグを含んだテキストを作り、RobotBrowser.sendRobotTagにそのテキストを渡します。


■ 変数操作

 書式   説明  備考
str_XXX 文字列型変数 文字列を格納する。XXXの部分は任意の英数字1文字以上で指定可能。
arr_XXX 配列型変数 配列を格納する。XXXの部分は任意の英数字1文字以上で指定可能。
配列の各要素は文字列型である必要がある。
位置指定子は arr_A(1) のように指定する。位置指定子は1から開始する(0からではないことに注意)。
wav_XXX 音声型変数 音声データ(音声ファイル)を格納する。XXXの部分は任意の英数字1文字以上で指定可能。
主に、Recording命令やSound命令、アップロードAPI系の命令で使用する。
img_XXX 画像型変数 画像データ(画像ファイル)を格納する。XXXの部分は任意の英数字1文字以上で指定可能。
主に、Picture命令や、アップロードAPI系の命令で使用する。
Set 変数格納命令 文字列型変数へ、任意の文字列リテラルを格納させることができる。下記の例を参照。
<!--
    <robot>
        Set:おはようございます。,str_A
        Speak:str_A
    </robot>
-->  

Clear 変数初期化命令 任意の文字列型変数を初期化させることができる。下記の例を参照。
*任意の文字列型変数の指定がない場合は全ての文字列リテラルを初期化します。
<!--
    <robot>
        Set:おはようございます。,str_A
        Speak:str_A
        Clear:str_A
    </robot>
-->  

TagReset タグのキャッシュをリセットする命令 現在コネクターに送信されているタグをリセットすることができる。
*現在ロボットがしゃべっているタグはリセットすることは出来ない。
TextCut 変数から一部を削除する命令 文字列型変数から任意の文字列を削除し格納ことができる。下記の例を参照。
<!--
    <robot>
        Set:おはよう@ございます。,str_A
        TextCut:str_A,@,str_B
        Speak:str_B
    </robot>  

    <robot>
        Set:さよう3なら。
        TextCut:str_A,3
        Speak:str_A
    </robot>
-->

TextCut(Between) 変数から指定した2点の間を取得する命令 文字列型変数から指定した2点の間の文字列を取り出し格納することができる。下記の例を参照。
<!--
    <robot>
        Set:@さようなら!,str_A
        TextCut:str_A,Between,@,!,str_B
        Speak:str_B
    </robot>

    <robot> 
        Set:@さようなら!,str_A
        TextCut:str_A,Between,@,!
        Speak:str_A
    </robot>
-->

TextCut(Between) 変数から指定した2点の間を取得する命令 文字列型変数から指定した2点の間の文字列を取り出し格納することができる。下記の例を参照。
<!--
    <robot>
        Set:@さようなら!,str_A
        TextCut:str_A,Between,@,!,str_B
        Speak:str_B
    </robot>

    <robot> 
        Set:@さようなら!,str_A
        TextCut:str_A,Between,@,!
        Speak:str_A
    </robot>
-->

TextCut(Split) 変数から指定した文字列で分割する命令 文字列型変数から指定した文字列で分割し格納させることができる。下記の例を参照。
*指定する文字列が空白の場合は,が代入される。
<!--
    <robot>
        Set:おはようございます。&さようなら&こんにちは,str_A
        TextCut:str_A,Split,&,arr_A
        Speak:arr_A(1)
    </robot>
-->  

Today(日付要素指定子) 日付取得マクロ書式(当日) 文字列型変数へ、当日の日付情報を格納させることができる。下記の例を参照。
<!--
    <robot>
        Set:Today,str_B
        Speak:str_B
    </robot>
-->
日付要素指定子は省略することができる。その場合は年月日時分曜日の全ての情報を返す。
日付要素指定子の詳細な仕様は下記の通り。
year → 2016年(年)
month → 1月(月)
day → 1日(日)
hour → 01時(時)
minute → 10分(分)
week → 月曜日(曜日)
※組み合わせることが可能。
例)year/month/day →2016年1月1日
例)month/day/week → 1月1日月曜日
Nextday(n日後)(日付要素指定子) 日付取得マクロ書式(将来) 文字列型変数へ、将来日付の日付情報を格納させることができる。下記の例を参照。
<!--
    <robot>
        Set:Nextday(2)(Month),str_C
        Speak:str_C
    </robot>
-->
日付要素指定子の詳細な仕様はTodayを参照のこと。
Previousday(n日前)(日付要素指定子) 日付取得マクロ書式(過去) 文字列型変数へ、過去日付の日付情報を格納させることができる。下記の例を参照。
<!--
    <robot>
        Set:Previousday(3)(Week),str_D
        Speak:str_D
    </robot>
-->
日付要素指定子の詳細な仕様はTodayを参照のこと。
[$$ str_XXX $$]
[$$ arr_XXX(n) $$]
文字列型変数出力マクロ書式 文字列型変数の中に格納されている文字列を、スクリプト内で出力させることができる。下記の例を参照。
<!--
    <robot>
        Hear:"ヒアーのテストですか?",str_A,2
        Speak:あなたの回答は、[$$ str_A $$]でした。
    </robot>

    <robot>
        Hear:"ヒアーのテストですか?",arr_A(1),2
        Speak:あなたの回答は、[$$ arr_A(1) $$]でした。
    </robot>
-->
文字列の置換は、<robot>タグ外の通常のHTML領域内でも使用することができる。
その場合、置換が実行されるタイミングは、HTMLページがブラウザに読み込まれた直後に限定されることに注意。


■ ロボット動作系命令

 書式   説明  備考
Speak:文字列型 発話 文字列型(変数、リテラル)で指定された内容を発話させる。
<!--
    <robot>
        Speak:こんにちは
    </robot>
-->
Hear:"質問文の文字列型",回答格納の文字列型,聞き直し回数 聴聞(Yes/No回答タイプ) 質問文を発話した後、マイクから回答を聴聞し、解析された文字列を指定した文字列型変数に格納する。
聴聞に失敗した場合は、指定した回数だけ、聴き直す。
<!--
    <robot>
        Hear:"ヒアーのテストですか?",str_A,2
    </robot>
-->
聞き取ることができる回答は、「はい」「いいえ」のYes/Noの2択であることに注意。
Hear3:"質問文の文字列型",回答格納の文字列型,聞き直し回数 聴聞(任意回答タイプ) 質問文を発話した後、マイクから回答を聴聞し、解析された文字列を指定した文字列型変数に格納する。
聴聞に失敗した場合は、指定した回数だけ、聴き直す。
<!--
    <robot>
        Hear3:"好きな食べ物は何ですか?",str_C,2
    </robot>
-->
任意の内容の回答を聞き取ることができる。
ただし、聞き取り可能な時間の長さとしては、ワンフレーズ(途切れなく発話されたと判断された長さ)に限られることに注意。
Sound:音声型 音声の再生 音声型変数で指定された内容を、スピーカーから再生させる。
<!--
    <robot>
        Sound:wav_A
    </robot>
-->
Recording:秒数,音声型 音声の録音 指定した秒数でマイクから録音し、音声型変数へ格納する。
<!--
    <robot>
        Recording:10,wav_A
    </robot>
-->
Picture:画像型 画像の撮影 カメラで静止画像を撮影し、画像型変数へ格納する。
<!--
    <robot>
        Picture:img_A
    </robot>
-->
Upload:音声型・画像型 バイナリデータ転送(ロボット→ロボットコネクター方向) ロボット側で取得させた音声型変数や画像型変数の内容を、バイナリ形式ファイルとして非同期転送する。
転送先はロボット→ロボットコネクター(中継サーバー)となる。中継サーバーのローカルフォルダに格納される。
<!--
    <robot>
        Upload:img_A
    </robot>
-->
Upload:音声型・画像型,browser バイナリデータ転送(ロボット→ロボットブラウザ方向) ロボット側で取得させた音声型変数や画像型変数の内容を、バイナリ形式ファイルとして非同期転送する。
転送先はロボット→ロボットブラウザとなる。ロボットブラウザのローカルフォルダに格納される。
<!--
    <robot>
        Upload:wav_A,browser
    </robot>
-->
Download:音声型・画像型 バイナリデータ転送(ロボットコネクター→ロボット方向) ロボット側に渡したい音声型変数や画像型変数を、バイナリ形式ファイルとして非同期転送する。
転送先はロボットコネクター(中継サーバー)→ロボットとなる。ロボットのユーザー領域(micro SD内)に格納される。
<!--
    <robot>
        Download:img_A
    </robot>
-->
UploadLog ログデータ転送(ロボット→ロボットコネクター方向) ロボット側で取得させたログ情報を、ログファイルとして非同期転送する。
転送先はロボット→ロボットコネクター(中継サーバー)となる。中継サーバーのローカルフォルダに格納される。
<!--
    <robot>
        UploadLog
    </robot>
-->
Sync バイナリデータ双方向同期転送 ロボット側で保持している音声ファイル・画像ファイルと、ロボットコネクター(中継サーバー)側で保持している音声ファイル・画像ファイルを同期転送する。転送自体は非同期で実行される。
<!--
    <robot>
        Sync
    </robot>
-->


■ 条件分岐系命令

 書式   説明  備考
if:文字列型 比較演算子 文字列型
    命令節
elseif:文字列型 比較演算子 文字列型
    命令節
else:
    命令節
endif:
IFステートメント 比較による条件分岐を制御する。
比較できるのは、文字列型変数、配列型変数の1要素、文字列リテラル。
比較演算子には、==、!=、>=、<=、>、<、が使用できる。
elseif節とelse節は省略できる。endif終端子は必ず記述されなければならない。
<!--
    <robot>
        Hear2:"リンゴ。バナナ。ミカン。どれが好きですか?","リンゴ/バナナ/ミカン",arr_B(1),3
        Hear2:"春。夏。秋。冬。どれが好きですか?","春/夏/秋/冬",arr_B(2),3

        speak:テスト1は
        if:arr_B(1)==リンゴ
            Speak:リンゴですね
        elseif:arr_B(1)==バナナ
            Speak:バナナですね
        elseif:arr_B(1)==ミカン
            Speak:ミカンですね
        else:
            Speak:わからないです
        endif:

        speak:テスト2は
        if:arr_B(2)==春
            Speak:春ですね
        elseif:arr_B(2)==夏
            Speak:夏ですね
        elseif:arr_B(2)==秋
            Speak:秋ですね
        elseif:arr_B(2)==冬
            Speak:冬ですね
        else:
            Speak:わからないです
        endif:
    </robot>
-->
Jump:文字列型 比較演算子 文字列型,Label(ラベル指定子1)
Jump:文字列型 比較演算子 文字列型,Label(ラベル指定子2)
  :
  :
Label(ラベル指定子1)
    命令節
    Endlabel:
Label(ラベル指定子2)
    命令節
    Endlabel:
IFステートメント(疑似ブロック処理) 比較による条件分岐を制御する。
比較できるのは、文字列型変数、配列型変数の1要素、文字列リテラル。
比較演算子には、==、!=、>=、<=、>、<、が使用できる。
ラベル指定子は、任意の英数字で指定できる。Endlabel終端子は必ず記述されなければならない。
    <!--
        <robot>
11         Jump:Today==月曜日,Label(Monday)
12         Jump:Today==21日,Label(001)
13         Jump:Nextday(7)==11月28日,Label(002)
14         Jump:Previousday(7)==11月14日,Label(003)
15         Jump:Today==01日,Label(004)
16         Jump:Today==01日,Label(006)

21         Label(Monday):
22             Speak:月曜日です。
23         Endlabel:
31         Label(001):
32             Speak:28日です。
33         Endlabel:
41         Label(002):
42             Speak:11月28日の一週間後です。
43         Endlabel:
51         Label(003):
52             Speak:1月28日の一週間前です。
53         Endlabel:
61         Label(004):
62             Jump:Today==火曜日,Jump(005)
71             Label(005):
72                 Speak:test
73              Endlabel:
63         Endlabel:
81         Label(006):
82             Speak:Good morning
83         Endlabel:

17         Speak:Good Bye
         </robot>
    -->
上記の例の場合、本日が「12/1 月曜日」だった場合の制御シーケンスは、下記の通りとなる。
11:ジャンプ⇒21⇒22⇒23⇒12
12:スル―
13:スル―
14:スル―
15:ジャンプ⇒61⇒62:スル―⇒63⇒16
16:ジャンプ⇒81⇒82⇒83⇒17
17:実行


■ クラウドAPI系命令

 書式   説明  備考
Office365_Excel:ADD,文字列型・配列型 Office365操作命令
Excel Online・1行追記
ブラウザで指定したExcel Onlineの特定のファイル・特定のワークシートに、1行追記する。
追記する内容は文字列型あるいは配列型で指定する。
文字列型を指定した場合、新規行の一番左のセルが編集される。
配列型を指定した場合、新規行の一番左のセルから、配列の要素の数だけ、右に向かって1つずつセルが編集される。
<!--
    <robot>
        Hear3:"お名前は?",str_A,2
        Office365_Excel:ADD,str_A
    </robot>
-->
Office365_Excel:UPLOAD,文字列型・配列型 Office365操作命令
Excel Online・2行目更新
ブラウザで指定したExcel Onlineの特定のファイル・特定のワークシートの、2行目を更新する。
追記する内容は文字列型あるいは配列型で指定する。
文字列型を指定した場合、2行目の一番左のセルが編集される。
配列型を指定した場合、2行目の一番左のセルから、配列の要素の数だけ、右に向かって1つずつセルが編集される。
<!--
    <robot>
        Hear3:"年齢は?",arr_A(1),2
        Hear3:"性別は?",arr_A(2),2
        Office365_Excel:UPLOAD,arr_A
    </robot>
-->
Office365_Excel:UPLOAD2,文字列型・配列型,セル指定子 Office365操作命令
Excel Online・任意セル更新
ブラウザで指定したExcel Onlineの特定のファイル・特定のワークシートの、任意のセルを更新する。
追記する内容は文字列型あるいは配列型で指定する。
文字列型を指定した場合、セル指定子で指定したセルが編集される。
配列型を指定した場合、セル指定子で指定したセルから、配列の要素の数だけ、右に向かって1つずつセルが編集される。
<!--
    <robot>
        Hear3:"Office365を使用していますか?",str_B,2
        Office365_Excel:UPLOAD2,str_B,A2
    </robot>
-->
Office365_Mail:GET,取得指定子,文字列型 Office365操作命令
メール取得
ブラウザで指定したOffice 365アカウントのメールボックスから各種情報を取得する。
<!--
    <robot>
        Office365_Mail:GET,unread_count,str_C
        Speak:str_C
    </robot>
-->
取得指定子で指定できるパラメータと、応答文字列のパターンは下記の通り。
・unread_count → 未読件数
 応答文字列:「未読件数はx件です。」

・inbox_count → 受信トレイの件数
 応答文字列:「受信トレイの件数はx件です。」

・unread_message → 未読メールを取得(直近の1件)
 応答文字列:「最新の未読は、fromはxxx タイトルはxxx 本文はxxxのメールです。」

・unread_all_message → 未読メールを取得(直近の5件)
 応答文字列:「未読件数はx件です。
        1件目、fromはxxx タイトルはxxx 本文はxxxのメールです。
        2件目、.....」
上記以外の取得指定と応答のパターンを追加したい場合は、ご要望をお寄せください!
Office365_Mail:SEND,文字列型(件名),文字列型(本文),"文字列型(宛先)" Office365操作命令
メール送信
ブラウザで指定したOffice 365アカウントから、メール送信する。
<!--
    <robot>
        Office365_Mail:SEND,テスト,テストです。,"nextsetrobotdemo@gmail.com(ロボ1)"
        Speak:メールを送信しました。
    </robot>
-->
宛先は、"address(name)/address(name)"のフォーマットで、半角スラッシュで区切ることで複数指定できる。
Office365_Calendar:GET,取得指定子,文字列型 Office365操作命令
予定表・予定取得
ブラウザで指定したOffice 365アカウントの予定表から、各種情報を取得する。
<!--
    <robot>
        Office365_Calendar:GET,today_count,str_D
        Speak:str_D
    </robot>
-->
取得指定子で指定できるパラメータと、応答文字列のパターンは下記の通り。
・today_count → 本日の件数
 応答文字列:「本日の件数はx件です。」

・tomorrow_count → 明日の件数
 応答文字列:「明日の件数はx件です。」

・today_am_count → 本日の午前の件数
 応答文字列:「本日の午前の件数はx件です。」

・today_pm_count → 本日の午後の件数
 応答文字列:「本日の午後の件数はx件です。」

・today_all_message → 本日の予定を取得
 応答文字列:
 「本日の予定件数はx件です。
  1件目、時間は10時00分から11時00分 場所は東陽町 タイトルはxxx 説明はxxx 出席者はxxx の予定です。
  2件目、.....」

・tomorrow_all_message →  明日の予定を取得
 応答文字列:
 「明日の予定件数はx件です。
  1件目、時間は10時00分から11時00分 場所は東陽町 タイトルはxxx 説明はxxx 出席者はxxx の予定です。
  2件目、.....」

・today_am_message → 本日の午前の予定を取得
 応答文字列:
 「午前の予定件数はx件です。
  1件目、時間は10時00分から11時00分 場所は東陽町 タイトルはxxx 説明はxxx 出席者はxxx の予定です。
  2件目、.....」

・today_pm_message → 本日の午後の予定を取得
 応答文字列:
 「午後の予定件数はx件です。
  1件目、時間は10時00分から11時00分 場所は東陽町 タイトルはxxx 説明はxxx 出席者はxxx の予定です。
  2件目、.....」
上記以外の取得指定と応答のパターンを追加したい場合は、ご要望をお寄せください!
Office365_Calendar:ADD,文字列型(開始日時),文字列型(終了日時),文字列型(件名),文字列型(説明),文字列型(場所),”文字列型(参加者)"
Office365操作命令
予定表・予定追加
ブラウザで指定したOffice 365アカウントの予定表に、予定を追加する。
<!--
    <robot>
        Office365_Calendar:ADD,2016/11/24 13:30,2016/11/25 14:30,予定,予定です。,東陽町,"nextsetrobotdemo@gmail.com"
        Speak:カレンダーを追加しました。
    </robot>
-->
各引数には、空文字で指定できるパラメータもある。詳細は下記の通り。
引数ごと省略(=カンマを消す)ことはできないので注意。
・開始日時 → 必須 例)2016/10/19 03:30
・終了日時 → 必須 例)2016/10/19 03:30 
・件名 → 任意 指定しない場合は空で 例)予定
・説明 → 任意 指定しない場合は空で 例)予定です。
・場所 → 任意 指定しない場合は空で 例)東陽町
・参加者 → 任意 指定しない場合は空で 例)xxx@sateraito.co.jp/yyy@sateraito.co.jp
Office365_OneNote:ADD,文字列型(本文),画像型・音声型 Office365操作命令
OneNote Online・投稿
ブラウザで指定したOneNote Onlineの特定のセクション、特定のページに、投稿を追加する。
<!--
    <robot>
        Recording:10,wav_A
        Office365_OneNote:ADD,テストです。,wav_A
    </robot>
-->
引数の「文字列型(本文)」は、内容をフラットテキストとしてもよいし、HTMLタグを含んだ文字列としてもよい。
引数の「文字列型(本文)」と「画像型・音声型」は、どちらか1つを省略してもよい。ただし、両方省略することはできない。
IFTTT:文字列型,画像型 サテライトオフィスのIFTTTと連携 指定した文字列もしくは画像をIFTTTに渡す。
<!--
    <robot>
	IFTTT:おはようございます。,ロボットブラウザからIFTTTへ,page.jpg
    </robot> 
-->
IFTTTに渡せる文字列は最大8・画像は最大3になります。
*文字列だけや画像だけの送信も可能です。

IFTTT連携設定
RSS:文字列型(URL),取得する数,配列型(タイトル),配列型(本文) 指定したRSSを取得 指定したURLからRSSを取得する。
<!--
    <robot event=test_rss_api_google>
	RSS:https://news.google.com/news/section?hl=ja&ned=us&ie=UTF-8&output=rss&oe=UTF-8&topic=b,3,arr_A,arr_B
	Speak:arr_A(1)
	Speak:arr_B(1)
    </robot> 
-->
指定したRSSから取得してきたタイトルと本文を新着の順番で配列に格納していきます。
HTML:文字列型(URL),文字列型(開始タグ・もしくは文字列),文字列型(終了タグ・もしくは文字列),文字列型もしくは配列型 指定したURLのHTMLから開始タグと終了タグの間を取得 指定したURLから指定した開始タグと指定した終了タグの間にある文字列を取得する。
<!--
    <robot>
       HTML:http://www.tenki.jp/forecast/3/16/4410/13108-10days.html,<table class="forecast_table_tendays">,</table>,str_A
	TextCut:str_A,Between,Today(月),03
	TextCut:str_A,Split, ,arr_A
	TextCut:arr_A(3),Split,℃,arr_B
	Speak:[$$arr_A(1)$$]の天気は[$$arr_A(2)$$]です。最高気温は[$$arr_B(1)$$]度で最低気温は[$$arr_B(2)$$]です。
    </robot>
-->
* 指定したHTMLに指定した開始タグと終了タグが複数ある場合
    最後を文字列型にすると取得してきた最初の文字列を格納します。
  最後を配列型にすると取得してきた順番で配列に格納していきます。


■ その他の命令

 書式   説明  備考
Redirect:文字列型(遷移先URL) 画面遷移(即時実行) 指定したURLにページ遷移する。
<!--
    <robot>
        Speak:画面遷移します。
        Redirect:https://google.com
    </robot>
-->
ユーザーが画面上のボタンアクションをした際に、クラウドAPI系の操作と連続で画面遷移したい場合などに使う。



IFTTT連携方法

■ ロボットブラウザの設定画面からIDの発行・アカウント登録

下記画像のIDの取得を押すと連携用IDが発行されます。
Account部分にはIFTTTに登録しているアカウントを入力してOKを選択してください。



■ IFTTT画面で連携IDを入力

サテライトオフィスのIFTTTのページから上記で発行した連携IDを入力します。
    
 ①サテライトオフィスのIFTTTページへ入って『Coneect』ボタンを選択します。
 ②『Coneect』ボタンを『Input IFTTT Key』を入力する画面が出るので
  そちらに発行した連携IDを入力して『Coneect』ボタンを押すと連携可能になります。

 *上記の設定後はIFTTTの仕様に従って登録してくだい。








FAQ

・ロボットが喋りません。

ご使用のWifiの設定でローカルネットワークへ接続を禁止している場合ですが、ローカルネットワークへの接続を許可してください。
 ローカルネットワークへの接続とは一例としまして、Ymobileの場合プライバシーセパレータという設定項目になります。
Wifiによって文言が違う場合がありますので文言が違う場合は購入したWifiの会社にお問い合わせして頂けると助かります。

 ローカルネットワークへ接続を禁止しているかはマニュアルのロボットブラウザのセットアップで確認方法を載せております。

 ご使用のWindows端末のファイヤーウォールの有効がWindowsファイヤーウォール以外になっている場合はWindowsファイヤーウォールを有効にしてください。
 有効にする方法はこちら