Botbird for Business 置き換えタグ

■ランダム文字
{random:数字-数字} : ランダムの数字(例){random:1-30}
{random:文字列,文字列,文字列} : ランダムの文字列(例){random:おはよう!,おはよ,おっはー}


■強制改行(改行に対応している出力先のみ)
{crlf}


■時刻
{year} : 現在の年
{month} : 現在の月
{day} : 現在の日付
{hour} : 現在の時
{minute} : 現在の分
{second} : 現在の秒
{time} : 現在のUnixTime( (1970 年 1 月 1 日 00:00:00 GMT) からの通算秒)
{strtotime:日付と時刻の書式} : 指定の日付と時刻の書式のUNIXタイムスタンプ
{utstrtotime:UNIXTIME:日付と時刻の書式} : 指定のUNIX地タイムスタンプを基準とした、指定の日付と時刻の書式のUNIXタイムスタンプ
{adayoftheweek} : 現在の曜日
{adayoftheweekjp} : 現在の曜日(日本語)
{strftime:汎用時刻format} : 汎用的な時間表現(日本時間)
{gmstrftime:汎用時刻format} : 汎用的な時間表現(世界標準時)
{gmstrftime+数字:汎用時刻format} : 汎用的な時間表現(世界標準時プラスx時間)
{gmstrftime-数字:汎用時刻format} : 汎用的な時間表現(世界標準時マイナスx時間){utstrftime:UNIXTIME:汎用時刻format} : 汎用的な時間表現(指定のUNIXタイムスタンプ)

※strftimeで利用可能な汎用時刻formatについては下記URLをご参照下さい。
http://php.net/manual/ja/function.strftime.php
※strtotimeで利用可能な日付と時刻の書式については下記URLをご参照下さい。
https://www.php.net/manual/ja/datetime.formats.php
※UNIXタイムスタンプ( (1970 年 1 月 1 日 00:00:00 GMT) からの通算秒)については下記URLをご参照下さい。
https://ja.wikipedia.org/wiki/UNIX%E6%99%82%E9%96%93


■文字列操作 

{substr:数字1:数字2:操作前の文字列} : 「操作前の文字列」を[数字1]文字目から[数字2] 文字切り出します。 ※[数字1]は0スタートです。

例:{substr:0:5:abcdefghijklmn} → 「abcde」が出力されます。
例:{substr:2:5:abcdefghijklmn} → 「cdefg」が出力されます。

{feature:文字列} 特徴語の抽出。文章を入れると名詞中心に特徴語を抽出します。

{urlencode:文字列} 文字列をURLエンコードする。URLパラメータ等でご利用下さい。

{probability:確率:文字列} 確率(1〜99)で文字列を返す。


■計算

{math::四則計算式} : 計算結果を出力します。※コロン「:」は2連続します。
{math:floor:四則計算式} : 計算結果を小数点一桁で切り捨てて出力します。
{math:ceil:四則計算式} : 計算結果を小数点一桁で切り上げて出力します。
{math:round:四則計算式} : 計算結果を小数点一桁で四捨五入して出力します。

例:{math::2*(5+5)*8}
→「2*(5+5)*8」の結果「160」を出力します
例:{math:ceil:(1595516400-{time})/60/60/24}
→現在時刻{time}から、2020/7/24(=Unixtimeで1595516400)までの残り日数を切り上げて出力します。※Unixtime取得はここから検索


■RSS配信ボット
{rss_url} : RSSのURL
{title} : アイテムのタイトル
{link} : アイテムのURL
{entrydate} : アイテムのエントリー日時
{contents} : アイテムの中身


■シンプル返信ボットの「返信メッセージ」、シナリオボットの「シーン:メッセージ」
:基本の置き換えタグ
{@} : @(相手のID)
{id} : 相手のID
{uid} : 相手のID  ※{id}とは異なる表現のIDに使われる場合があります。
{name} : 相手の名前
{message} : 相手のメッセージ内容
{tweet} : 相手のメッセージ内容
{message-searchword} : 相手のメッセージ内容(検索用語を除外)
{tweet-searchword} : 相手のメッセージ内容(検索用語を除外)
{match} : @返信正規表現マッチ結果
{match0-1} : @返信正規表現マッチ結果[0][1]
{match0-1} : @返信正規表現マッチ結果[0][1]
※数字は最大「99-99」までご利用可能です(正規表現の内容によって代入される文字列は異なります)。
※例)反応ワード:「これあげる!【(.+?)】」
→返信メッセージ:「{@} {match0-1}有難う!」


■シンプル返信ボットの「返信メッセージ」、シナリオボットの「シーン:メッセージ」:シナリオ起動
{snr:xxxx} : シナリオを開始する(xxxxはシナリオID)
{snr:xxxx-yyyy} : 任意のシーンからシナリオを開始する(xxxxはシナリオID、yyyyはシーンID)
{snr_reload} : 現在のシーン内容をもう一回表示する


■シンプル返信ボットの「返信メッセージ」、シナリオボットの「シーン:メッセージ」
:LINE、Facebookで利用出来る「定期・ランダムボット」「曜日・時間指定ボット」購読置き換えタグ
{subscribe} : 今話している相手を購読させる
{unsubscribe} : 今話している相手を購読終了させる

※例)反応ワード:「購読する」
→返信メッセージ:「{name}さん有難う!これから情報配信しますね!{subscribe} 」
※例)反応ワード:「購読やめる」
→返信メッセージ:「{name}さん有難うございました!{unsubscribe} 」


■シンプル返信ボットの「返信メッセージ」、シナリオボットの「シーン:メッセージ」
:相手ごとのフラグ設定
{flag_on:xxxxx} : 今話している相手にフラグを立てる(xxxxxxは半角数値0または1で表現されたフラグ。最大32桁)
{flag_off:xxxxx} : 今話している相手のフラグを下ろす(xxxxxxは半角数値0または1で表現されたフラグ。最大32桁)
※仕様上、プレビューでは動作しませんのでご了承下さい。

※例)返信メッセージ:「フラグをたてます{flag_on:1000}」
→下から4番目のフラグを立てます。
※例)返信メッセージ:「フラグをおろします{flag_off:1000}」
→下から3番目のフラグを降ろします。
※このフラグを立てておくことで、下記の{if}を利用した返信振り分けやシナリオ起動振り分けが可能となります。


■シンプル返信ボットの「返信メッセージ」、シナリオボットの「シーン:メッセージ」
:相手ごとのキオク・好感度・統計関連
{like:xxxxxx} : xxxxxxさんへのスキ度(xxxxxxは相手のID)
{like:{id}} : xxxxxxさんへのスキ度(返信ボット利用時)
{dislike:xxxxxx} : xxxxxxさんへのキライ度(xxxxxxは相手のID)
{dislike:{id}} : xxxxxxさんへのキライ度(返信ボット利用時)
{mention_res:xxxxxx} : xxxxxxさんへの返信回数(xxxxxxは相手のID)
{mention_res:{id}} : xxxxxxさんへの返信回数(返信ボット利用時)
{like_total} : スキ度の全員の合計値
{dislike_total} : キライ度の全員の合計値
{mention_res_total} : 返信回数の全員の合計値
{mood} : 現在の自分のごきげん度


■シンプル返信ボットの「返信メッセージ」、シナリオボットの「シーン:メッセージ」
:相手からのニックネームや記録用語の設定
{nickname} : 返信相手毎に指定したニックネーム。ニックネーム設定がない場合は{name}同等となります。
{user_word1} : 返信相手毎に指定した用語1。
{user_word2} : 返信相手毎に指定した用語2。
{user_word3} : 返信相手毎に指定した用語3。

※{nickname}{user_word(数字)}はそれぞれ、シンプル返信の「反応ワード」側に{set_nickname}{set_user_word(数字)}と指定することで、相手に自動設定してもらうことも可能です。
(例:反応ワード『「{set_nickname}」って呼んで下さい』→返信メッセージ『わかりました、{nickname}さんですね!』)
(例:反応ワード『私は「{set_user_word1}」が大好きです』→返信メッセージ『{user_word1}がスキなのですね、覚えておきます!』)

※下記の4つはシンプル返信の「反応ワード側」の置換文字です
{set_nickname} : ニックネーム指定を受け付ける。
{set_user_word1} : ユーザーワード1指定を受け付ける。
{set_user_word2} : ユーザーワード1指定を受け付ける。
{set_user_word3} : ユーザーワード1指定を受け付ける。


■シナリオボットの「シーン:メッセージ」「選択肢:メッセージ」「外部情報:外部APIのURL」
{snr_name} : 現在のシナリオ名
{scene_text} : 前シーンのメッセージ
{c_text} : 前シーンで選んだ選択肢テキスト
{c_key} : 前シーンで選んだ選択肢キー
{c_data:XXXX} : 前シーンで取得した外部データから選んだ選択肢の詳細データ(xxxxは、外部データJSONのアイテム内の要素名)
{set_c_data:XXXX:YYYY} : 選択肢テキスト内に記載して、次のシーンの{c_data}で利用できるデータを定義する。
{user_id} : 会話中ユーザーの各サービス上のID
{service_id} : 会話中ユーザーの利用サービスのID(LINE:20, Facebookメッセンジャー:30)
{snr_session_log} : 現在進行中のシナリオ開始からの履歴情報
{reply_to:XXXX} : 会話中ユーザーが「XXXX」と発言したものに対する返信を返す(シンプル返信に定義済みの返信を返したり、シンプル返信の設定経由で別シナリオやFAQを応える場合などに利用できます)


■if文:対象ユーザーによるメッセージフィルタリング
※シンプル返信。
※定期(ランダム)ボット、時報ボット、RSS配信ボット:LineおよびFacebookメッセンジャー対応。

※Twitterタイムラインの場合は、if文の内容にかかわらず無条件配信

※このif文は、1メッセージあたり1件まで、また他のタグ等と混在させる場合は最後に配置して下さい。

{if:[条件],メッセージ}
※[条件]に合うときにのみ、メッセージを配信します。

{if:[条件],条件に合致したときのメッセージ,条件に合致しなかったときのメッセージ}
※[条件]に合うときと合わないときに分けて、メッセージを配信します。

[条件]の書き方
パラメータ 演算子 値
and(パラメータ 演算子 値,パラメータ 演算子 値)
or(パラメータ 演算子 値,パラメータ 演算子 値)

※複数条件をand(,,,)またはor(,,,)で連結することが出来ます。

※パラメータには、下記が利用できます。
nickname : ユーザーごとに指定されたニックネーム
user_word1 : ユーザーごとに指定された文言1
user_word2 : ユーザーごとに指定された文言1
user_word3 : ユーザーごとに指定された文言1
user_flag : ユーザーごとに{flag_on:xxxxx}{flag_off:xxxxx}タグで指定されたフラグの値
like_count : ユーザーごとにカウントされたスキ度
dislike_count : ユーザーごとにカウントされたキライ度
mention_res_count : ユーザーごとにカウントされた返信回数
aid : 利用されているアプリ、プラットフォーム番号
Twitter : 1
LINE : 20
Facebook Messenger : 30
LINE WORKS : 90
Google Assistant : 210
Alexa : 220
Web貼り付けチャット : 1000
管理画面プレビュー : 9999
※その他のアプリ、プラットフォームはお問い合わせ下さい。

%get_var:変数名:デフォルト値% : ユーザーごとに保存された変数
%get_json_var:変数名:JSONパラメータ名% : ユーザーごとに保存されたJSON変数内の値

※演算子には、==,!=,>,=.<=,&,~が利用できます。
※値には、数字、または文字列(””で囲んで下さい)、正規表現(””で囲んで下さい)が利用できます。

[条件]の書き方例
user_word1==”東京”
user_word1==”(東京|神奈川)”
%get_var:location:osaka%==”tokyo”
%get_json_var:location_json:0,area%==”tokyo”
like_count>100(like_count>100) ※カッコで括っても構いません
user_flag&1000 ※「&」は値をビット演算(論理積)してフラグ判断(フラグは半角数値0または1で表現された最大32桁の2進数数値)に利用します。「&」はフラグが立っている判断です。
user_flag~1000 ※「~」は値をビット演算(論理積)してフラグ判断(フラグは半角数値0または1で表現された最大32桁の2進数数値)に利用します。「~」は「&」の反対でフラグが下りている判断です。
and(like_count>100,dislike_count==0) ※コンマ区切りで複数条件を全て満たす場合に配信します。
or(like_count>100,dislike_count>100) ※oコンマ区切りで複数条件のどれかを満たす場合を真とします。

{if}の書き方例
{if:user_word1==”(東京|神奈川)”,東京の方ですね}
{if:%get_var:location:osaka%==”tokyo”,東京の方ですね}
{if:%get_json_var:location_json:0,area%==”tokyo”,東京の方ですね}
{if:(user_flag&1000),特別なあなたにだけこんばんは!}
{if:and(like_count>100,dislike_count==0),大好き!}
{if:aid=220,ALEXAへの返信}
{if:aid=20,LINEへの返信}


■RSS置き換えタグ 

{rss:title:rssのURL} → 指定RSSの最初の記事のタイトル
{rss:contents:rssのURL} → 指定RSSの最初の記事の中身
{rss:link:rssのURL} → 指定RSSの最初の記事のリンクURL

例)
{rss:title:http://rss.weather.yahoo.co.jp/rss/days/4410.xml} → Yahoo!天気情報の最初の記事のタイトル
{rss:2:contents:https://news.google.com/news?output=rss&q={match0-1}} → グーグルニュース情報の最初の記事のタイトル


■HTTPリクエストタグ

{http_post:TRUE:URL} → 指定URL内容をPOST取得し、得られた文字を表示
{http_post:FALSE:URL} → 指定URLにPOSTする(文字は表示しない)
{http_get:TRUE:URL} → 指定URL内容をGETし、得られた文字を表示
{http_get:FALSE:URL} → 指定URL内容をGETする(文字は表示しない)
{http_put:TRUE:URL} → 指定URL内容をPUTし、得られた文字を表示
{http_put:FALSE:URL} → 指定URL内容をPUTする(文字は表示しない)


■JSON置き換えタグ

{json_get:パラメータ名:JSONのURL} → 指定JSONの指定パラメータ名の値 。GET取得
{json_post:パラメータ名:JSONのURL} → 指定JSONの指定パラメータ名の値。POST取得
{json_put:パラメータ名:JSONのURL} → 指定JSONの指定パラメータ名の値。PUT取得

例)

{json_get:result:http://xxx.com/get_json?param1=aaa&param2=bbb} → 指定URLから取得したJSONデータの「result」というパラメータの値

※パラメータはコンマ区切りで多階層指定可能です。
{json_post:items,0,result:http://xxx.com/post_json?num=10} → 指定URLから取得したJSONデータの「items」配列の0番目の要素にある「result」というパラメータの値。「num=10」というパラメータは自動的にPOST用に変換されます。

{msg_param:} シンプル返信への入力情報がjson形式であった場合に、指定したキーの値を取得可能
例:検索ワード 「foo」
返信メッセージ 「{msg_param:foo}」

実際のシンプル返信への入力情報 「{“foo”:”bar”}」のとき、
実際の反応ワード 「bar」


■ユーザー変数
ユーザー毎に変数を保存して利用することが出来ます
https://help.botbird.biz/2018/03/16/user-variable/

・変数に会話中ユーザーに関する値をセットする時:{set_var:変数名:値}
・会話中ユーザーの変数の値を利用する時:{get_var:変数名:デフォルト値}
・会話中ユーザーの変数の値を全て利用する時:{get_var_all}

・URLからJSON情報をGET取得して変数にセットする時:{set_json_var_url_get:変数名:URL}
・URLからJSON情報をPOST取得して変数にセットする時:{set_json_var_url_post:変数名:URL}
・URLからJSON情報をPUT取得して変数にセットする時:{set_json_var_url_put:変数名:URL}
・変数内のJSONデータ内の特定のパラメータ値を利用する時:{get_json_var:変数名:JSONパラメータ名}


■カスタムタグ
ボット毎に任意のタグを作成することができます。
https://help.botbird.biz/2018/03/07/custom-dic/

・{tag:xxxxxxx(タグ名)}


■外部検索・データベース連動機能の利用

・シンプル返信ボットでの置き換え設定
{search_api:xxx} : 外部検索ボットを開始する(xxxxは外部検索APIのID)
{search_api:xxx:yyy} : 外部検索ボットを開始する(yyyyは外部検索APIに送るワード)
※例1)反応ワード:「新着ニュース」
→返信メッセージ :{search_api:xxxx}
→外部検索ボットのURLに「https://news.yahoo.co.jp/pickup/rss.xml」をRSSで登録しておく。※詳細設定方法は下記参照

※例2)反応ワード:「(.*)のニュース」
→返信メッセージ :{search_api:xxxx:{match0-1}}
→外部検索ボットのURLに「https://news.google.com/news」、送信パラメータに「{“output”:”rss”,”q”:”{%w%}”}」をRSSで登録しておく。※詳細設定方法は下記参照

・外部検索ボットでの置き換え設定
[URL] : 時刻の置き換え文字が利用可能です。
[送信パラメータ] :JSON形式で記載するパラメータ内で下記を利用可能
   {%q%}:外部検索起動時に受け取ったメッセージ全体
   {%u%}:会話相手のユーザーID
   {%w%}:外部検索起動時に受け取ったワード ※{search_api:xxx:yyy}のyyy部分
[結果配列名] : 外部検索結果のパラメータ名を(カンマ区切りで複数階層指定可能)
[結果表示Format] : (カンマ区切りで複数階層指定可能)
[画像URLFormat] : (カンマ区切りで複数階層指定可能。)RSSの場合は空白でも可能な場合取得します。
[リンクURLFormat] :(カンマ区切りで複数階層指定可能。) RSSの場合は空白でも可能な場合取得します。

※例1)[URL] : http://feedblog.ameba.jp/rss/ameblo/xxxxxxxxx/rss20.xml
[HTTPメソッド] : GET
[戻り値タイプ] : RSS
[結果表示Format] : :

※例2)[URL] : https://news.google.com/news
[HTTPメソッド] : GET
[送信パラメータ] : {“output”:”rss”,”q”:”{%w%}”}
[戻り値タイプ] : RSS
[結果表示Format] : :

※例3)[URL] : https://ci.nii.ac.jp/books/opensearch/search
[HTTPメソッド] : GET
[送信パラメータ] : {“format”:”json”,”q”:”{%w%}”}
[戻り値タイプ] : JSON
[結果配列名] : @graph,0,items
[結果表示Format] : 
[リンクURLFormat] :


■ユーザー毎の言語設定

ユーザー毎に自動翻訳機能の言語設定を行うことができます。
https://help.botbird.biz/2018/04/13/translation/

・{set_user_lang:言語コード}

例1){set_user_lang:ja}  : 日本語設定
例2){set_user_lang:} : 言語コードを書かないと言語の自動検出設定になります。


■FAQボット関連

{faq:xxx} : 簡単FAQボットを開始する
→xxxx部分は、FAQのIDを入力して下さい。FAQには質問文全文が送られます。

{faq:xxx:yyy} : 簡単FAQボットを開始する(FAQに送る文言を明示的に指定)
→yyyy部分は、FAQに送るワードを入力して下さい

{faq:0.○○:xxx} : 簡単FAQボットを開始する
→0.○○部分は、「0.55」などのように0~1の数値を指定して下さい。
数値を下げるとマッチ度合いが低くとも回答として表示されます。※デフォルトは約0.7
→xxxx部分は、FAQのIDを入力して下さい。FAQには質問文全文が送られます。

{faq:0.○○:xxx:yyy} : 簡単FAQボットを開始する(FAQに送る文言を明示的に指定)
→0.○○部分は、「0.55」などのように0~1の数値を指定して下さい。
数値を下げるとマッチ度合いが低くとも回答として表示されます。※デフォルトは約0.7
→xxxx部分は、FAQのIDを入力して下さい。
→yyyy部分は、FAQに送るワードを入力して下さい

{faq_info:xxxx:yyyy} : FAQ表の個別QAから情報を取得します。
→xxxx部分は、FAQ表左端の「QAID(数字-文字列形式)」を入力して下さい。
→yyyy部分は、取得する情報種別を入力して下さい(q / a / link / img_url )。

・設定例1
反応ワード:「(.*)」
→返信メッセージ :{faq:1234}

・設定例2
反応ワード:「質問:(.*)」
→返信メッセージ :{faq:1234:{match0-1}}

・設定例3
反応ワード:「(.*)」
→返信メッセージ :{faq:0.40:1234:{match0-1}}

・設定例4
反応ワード:「ABCの使い方」
→返信メッセージ :{faq:1234:ABCの利用方法}
※FAQにある「ABCの利用方法」という[質問]を表示させる意図


■機械学習関連

{similar_scene:シナリオID:文言} シンプル返信で利用。指定された文言をもとに、そのシナリオから良いシーンIDを選び出して自動的に遷移する。シナリオIDはコンマ区切りで複数可能

コメントを残す

コメントを投稿するには、以下のいずれかでログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中