■ 置き換えタグ一覧
置き換えタグとは、返信メッセージで利用可能な表記方法です。これらを組み合わせることで、ユーザーからの入力に応じて会話を制御することができます。
以下は、Botbirdbizで使用可能な置き換えタグの一覧です。
基本の置き換えタグ
ユーザ情報、入力を受け取るタグ
{@} : @(ユーザーのID)
{id} : ユーザーのID
{uid} : ユーザーのID ※{id}とは異なる表現のIDに使われる場合があります。
{name} : ユーザーの名前
{message} : ユーザーのメッセージ内容
{tweet} : ユーザーのメッセージ内容
{message-searchword} : ユーザーのメッセージ内容(検索用語を除外)
{tweet-searchword} : ユーザーのメッセージ内容(検索用語を除外)
{match} : シンプル返信の正規表現マッチ結果
{match0-1} : シンプル返信の正規表現マッチ結果[0][1]
※数字は最大「99-99」までご利用可能です(正規表現の内容によって代入される文字列は異なります)。
※例1)反応ワード:「これあげる!【(.+?)】」
→返信メッセージ:「{@} {match0-1}有難う!」
※例2)生成AI(ChatGPT)に利用者の入力をそのまま送信して応答を生成する時には、以下のように置き換えタグを使います。
→返信メッセージ:「{chatgpt:{message}}」
生成AIの置き換えタグはこちら
文字列操作
{substr:数字1:数字2:操作前の文字列} : 「操作前の文字列」を[数字1]文字目から[数字2] 文字切り出します。 ※[数字1]は0スタートです。
例:{substr:0:5:abcdefghijklmn} → 「abcde」が出力されます。
例:{substr:2:5:abcdefghijklmn} → 「cdefg」が出力されます。
{feature:文字列} 特徴語の抽出。文章を入れると名詞中心に特徴語を抽出します。
{urlencode:文字列} 文字列をURLエンコードする。URLパラメータ等でご利用下さい。
{probability:確率:文字列} 確率(1〜99)で文字列を返す。
ランダム変換
{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
計算式
{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)までの残り日数を切り上げて出力します。
ユーザ毎の設定
購読設定
定期・ランダムボット、曜日・時間指定ボットなどの プッシュ型の配信をユーザごとに配信するか否かを設定する。
プッシュ型の配信は、Webチャットでは利用できません。「Slack、Teams、Zoom、LINEWORKS」 などをお使いください。
{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:0100}」
→下から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指定を受け付ける。
条件文(if文)
対象ユーザの状態によるメッセージフィルタリング
シンプル返信、定期(ランダム)ボット、時報ボット、RSS配信ボットで利用できます。 Webチャットは対応していません。
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
SLACK:130
ZOOM:140
TEAMS:150
Google Assistant : 210
Alexa : 220
Web貼り付けチャット : 1000
CYZY SPACE:3000
管理画面プレビュー : 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への返信}
ユーザー変数
ユーザー毎に変数を保存して利用することが出来ます