外部システムからシナリオを移動や、フォーム登録する方法
プロラインの特徴として、外部システムと柔軟に連携が可能なことが挙げられます。
外部プログラムからプロラインに情報を送れば、ユーザーの挙動をコントロールできます。
・プロラインで、シナリオ移動する(メッセージを送る等)
・プログラム側からフォームに登録する(ユーザー情報の更新含む)
・(応用)フォームを利用して、任意のメッセージをユーザーに送信する
逆に、プロラインから必要なデータを外部送信することも可能です。
このページでは、外部プログラムからプロラインに信号を送信する際の設定方法と、テスト方法について説明します。
尚、全てのプログラムでは「uid(ユーザーID)」という、プロラインが、独自にLINE公式アカウントの友だち1人ずつに発行するユーザー識別子でユーザーを区別します。
「uid(ユーザーID)」は、プロライン管理画面上で確認する、CSV形式でダウンロードするほか、プロラインから外部システムに信号を送って通知することができます。
fa-font-awesomeシナリオ移動する
手順1:プロラインフリーにログインし、対象のシナリオ移動のカスタマイズ の編集画面を開きます
手順2:「外部システム連携用タグ発動用URL」を取得します
[外部システム連携したい場合]をクリックすると、外部システム連携に必要な情報が表示されます。「外部システム連携用タグ発動用URL」をクリックしてコピーします。
※クリップボードにURLがコピーされます。後ほど使用しますので、メモ帳に貼り付けて保存しておくなどしておきましょう。
手順3:「外部システム連携用タグ発動用URL」を実行すると、シナリオ移動が行われます
「外部システム連携用タグ発動用URL」の末尾にある[[uid]]を実際の友だちのユーザーIDに変更します。
例えば、ユーザーID abc1234 という方をシナリオ移動したい場合は、以下のようにURLを書き換えます。
https://autosns.jp/api/call-beacon/XXXXXXXXXX/[[uid]]
↓
https://autosns.jp/api/call-beacon/XXXXXXXXXX/abc1234
※XXXXXXXXXX はランダム英数字
書き換えたURLを実行するとシナリオ移動が行われます。
もっとも簡単な確認方法は、ブラウザのアドレスバーにURLを入力して表示することです。
実行した結果、以下の様に Call Success という内容が返ってくれば、対象のユーザーのシナリオ移動に成功したという意味です。
{"status":0,"info":"Call success - UserID: YYYYYYYY"}
ブラウザのアドレスバーにURLを入力して表示した場合、上記の内容がブラウザ上に表示されます。
fa-font-awesomeフォームに登録する
手順1:プロラインフリーにログインし、対象の登録フォーム の編集画面を開きます
手順2:フォームの編集画面で、質問を編集します
登録フォーム > 登録フォーム > 対象のフォーム を選択し、[新規質問を作成]ボタンで必要な数だけ質問要素を追加します。
形式はフリー項目にします。
例えば、予約時間にZoom会議室にアクセスするためのURLを登録する質問は以下の様になります。
質問名
ZOOM URL
形式
フリー項目
※名前は一例です
手順3:各質問のフィールド名 および フォームURLを取得します
各質問名の横にフィールド名が表示されています。上記の例の場合、form2-1、form2-2、form2-3 をメモしておきます。
また、フォームのURLもメモしておきます。
※後ほど使用しますので、メモ帳に貼り付けて保存しておくなどしておきましょう。
手順4:外部プログラムから、フォームURLに対して、「回答者のユーザーID」と「回答内容」を送ります
以下の例ではユーザーID abc1234 の友だちが、フォームを回答した場合の例です。
URL
https://XXXXXXXX.autosns.app/fm/aaaaaaaaaa?uid=abc1234
Method
POST
JSONデータ
{
"dataType": "json",
"form2-1":"https://...",
"form2-2":"https://...",
"form2-3":"https://..."
}
※"dataType": "json" の指定で返り値をjsonデータで受け取れます
- チェックボックス(複数回答時) "formX-Y": ["回答1", "回答2", "回答3"]
- 月日 "formX-Y": ["month", "2", "day": "15"]
- 年月日(カレンダー) "formX-Y": "2024/02/15"
- 年月日 "formX-Y": ["year": "2024", "month", "2", "day": "15"]
- その他 "formX-Y": "回答内容"
手順5:返り値を確認して、成否をチェックします
ステータスコード200と以下の情報を含むJSONオブジェクトを受け取った場合、フォーム登録成功です。
レスポンスの例{
"status': "200",
"message": "success"
}
ステータスコード400を受け取った場合、フォーム登録失敗です。messageやerror_descriptionにエラー情報の記載がございます。
※エラー内容によっては、error_description は返されない場合があります
{
"status": "400",
"message": "validation error form",
"error_description": "already answered"
}
エラーレスポンスの例(回答必須の質問に対する回答がない場合)
{
"status": "400",
"message": "validation error answer",
"error_description": [
"form2-1": "required question",
"form2-3": "required question",
]
}
フォーム回答内容はLINEメッセージ中で使用することもできますので、LINEメッセージで送信したい可変の値を外部システムからを登録し、フォーム登録時にシナリオ移動や完了メッセージの文面で回答内容を引用して任意のメッセージをユーザーに送信することができます。
例えば、フォーム回答時に以下の様なメッセージを送信する様に設定しておき、
[[form3-1]]、〇〇の件についてご連絡いたします。
"form3-1": "こんにちは" という回答を外部プログラムから登録すると、回答したことにしたユーザー宛に以下のメッセージを送ることができます。
こんにちは、〇〇の件についてご連絡いたします。
同じフォームに、"form3-1": "こんばんは" という回答を外部プログラムから登録すると、回答したことにしたユーザー宛に以下のメッセージを送ることができます。
こんばんは、〇〇の件についてご連絡いたします。
信号を送る自作システムを用意する
プロラインへ信号を送る外部システムを自分で用意してみたい方、プログラムはよく分からないけどテストしてみたい方向けに説明いたします。
既にご存知の内容は読み飛ばしてください。
尚、手順1~3は、以下のページ中で説明する内容と同じです。
手順1:レンタルサーバーを借ります
どこで借りても良いですが、例えば「さくらインターネット」(2023年11月にデジタル庁が主導する政府のクラウドインフラ「ガバメントクラウド」のサービス提供事業者に採択されています)のレンタルサーバーであれば、月額425円から使えます。
月額128円のプランは12ヶ月~36ヶ月一括払いのみですので、テスト用途には向いていません。性能的にも月額425円の方が良いです。
さくらのレンタルサーバー
https://rs.sakura.ad.jp/
手順2:ドメインを確認します
yahoo.co.jp や google.com の様なURL(インターネット上のアドレス)をドメインと言います。
あなた専用のドメイン(独自ドメイン)を購入することもできますが、テストであればまだ要らないです。
例えば、さくらのレンタルサーバーで、prolinetestというアカウントで取得すると、
prolinetest.sakura.ne.jp
というドメインが貰えます。(契約時完了メールなどご確認下さい)
手順3:ファイルアクセスのテストを行います
さくらのレンタルサーバの管理画面 にアクセスして、ファイルマネージャーを開くとレンタルサーバー上のファイルを参照できます。
例えば、さくらのレンタルサーバーで、prolinetestというアカウントで取得している場合、
/home/prolinetest/www/
の中身と、
ブラウザで
https://prolinetest.sakura.ne.jp/
にアクセスしたものとが対応します。
例えば、このwww というフォルダの中に、index.html というファイルを作成し以下の様に記述して保存すると、
Hello World.
ブラウザで http://prolinetest.sakura.ne.jp/index.html にアクセスした時に、「Hello World.」が表示されます。
ここから、具体的な例となります。
手順4:外部システムからフォームに登録するためのプログラムの用意
実際にフォームに登録するための信号送信を行うプログラム(sendform.php)は管理画面からダウンロードできます。
これを使うと、ご自身で1から全てのプログラムを記載するより簡単に作ることができます。
※どのフォームを選択しても共通のプログラムが表示されます。
ファイルマネージャーで sendform.php というファイルを作成し、コピーしたプログラムを貼り付けて保存します。
手順5:回答を設定してフォーム登録するプログラムの用意
前述のプロライン側の設定手順で、対象の登録フォーム [[form2]] が作成されているとします。 (※フォームIDは仮に 1iIabesZuK とします)
このフォームに ユーザーID:abc1234 として、ZoomミーティングURL[[form2-1]]、予約変更URL[[form2-2]]、キャンセルURL[[form2-3]] に実際の値を代理登録する例を記述します。
ファイルマネージャーで call.php というファイルを作成し、以下のプログラムを記述してみましょう。
<?php
// ファイルロード
require_once 'sendform.php'; //この呼び出し方をする場合のsendform.phpは、同一ディレクトリに置いてください(ディレクトリが違っても正しく指定すれば呼び出せます)。
// 必要データの登録
$formId = '1iIabesZuK';//ここには実際のフォームIDを持ってきます。
$uid = 'abc1234';//ここには実際のユーザーIDを持ってきます。
AutosnsSendForm::setFieldData('form2-1', 'https://usXXweb.zoom.us/j/1111111111');
AutosnsSendForm::setFieldData('form2-2', 'https://...');
AutosnsSendForm::setFieldData('form2-3', 'https://...');
$result = AutosnsSendForm::send($formId, $uid); //sendでフォームを送信。$resultに戻り値:True/Falseを格納。
if($result) {
echo 'OK';
}else {
print_r(AutosnsSendForm::getResultBody());
}
手順6:動作テスト
ブラウザのアドレスバーにcall.phpのURLを記述してアクセスしてみましょう。
https://prolinetest.sakura.ne.jp/call.php
※URLは適宜変更してください
ブラウザの画面に OK と表示されたら成功です。プロラインの管理画面でフォーム送信履歴を確認したり、実行したユーザーに対して「フォーム送信後のシナリオ移動」が行われているかなどご確認ください。
例えば、登録後のメッセージで [[form2-1]] を送信するとZoom URLの案内を送ることができます。
上記のプログラム例では失敗した場合、エラーメッセージが表示されます。内容を確認してプログラムに誤りがないかチェックしてください。
手順7:本番動作の例
call.php ではプログラムの内部にユーザーID、フォーム回答を記載しましたが、同様のsendform呼び出し処理をあなたの自作プログラムに書くことで任意のタイミングでフォーム登録(及びそれに応じたメッセージ送信やシナリオ移動)を行えます。
例えば、
・Zoom、Zapierと連携して、ユーザーIDを付けてZoom会議室を作成したらフォーム代理登録してユーザーにZoom URLを通知
・独自の会員サイトのアンケートフォームの回答をプロラインにも送る
・会員サイトで決済失敗した場合にエラーメッセージをLINEでも送信する(※シナリオ移動のみであれば、「シナリオ移動する」もご利用いただけます)
など、様々動作を実現可能です。
更に学習を進めたい方は、「PHP学習パッケージ」で学習してみてください。
サンプル メニュー付きページ を実際に作成しながらPHPというプログラミング言語、データベースについて学習することができます。
外部システムに信号を送る
このページでの説明とは逆に、プロラインから外部プログラム側に信号を送ることで、細かく外部システムと連携ができます。
・友だち追加時
・フォーム送信時
・シナリオ移動時(応用で、特定のメッセージ送信時)
・ブロック時
・ブロック解除時
・お客様が決済時
この内容については、別の記事で解説します。