機能改善#066┃オリジナルフォーム(LIFF)の回答をCSVダウンロードした際に最後列に広告コードが反映されるようになりました!

■目的
「広告コード」があることにより、オリジナルフォームを使用したアンケートの回答を分析する際に「広告コード」ごとにアンケート回答の品質判断が可能となります!

オリジナルフォーム(LIFF)のCSVダウンロード方法はこちら>

■セット所要時間
無し

■表示

フォームによって回答数が異なるため最後列が変わってきます。(写真のようにQ列とは限りません)

LIFFのZIPファイルが20MBを上回っていてアップロードできない時の回避方法
■目的
アップロードしたいZIPファイルが20MBを超えているとアップロードできないので、その時の回避方法の説明します。

アップロードの方法はこちら>

■セット所要時間
5分

■セットの流れ
まず方法ですが、ZIPファイルが20MBを超えない重さにする必要があります。

LIFFをアップロードする際の仕様の話ですが、アップロードする際に古いファイルは削除されず新しいファイルが上書きされる仕様となります。
そのためすでにアップロードがされている画像ファイルをに関してはアップロードしなくても問題ありません。
LIFFファイルをZIPにする前に、既存の画像データに関しては一旦削除いただき、ZIPファイル全体が20MB以下になるように調整をお願いします。

アップロード後は画像がちゃんと表示されているかのご確認をお願いします。



ガイドの内容はあくまでもサンプルになります。  そのまま使用できない場合は対応するフォームにあわせての編集をお願いします。   表示設定が正常にできない場合、ソースチェックの有償サポートも行っております。  ご希望の場合は設定代行バナー、もしくはお問い合わせLINE、チャットワークよりご依頼をお願いします。
【オリジナルフォーム】画像添付でカメラ起動かファイル選択を選べるようにする
■目的
オリジナルフォームで画像添付する際にカメラ起動かファイル選択を選べるようにします。

■セット所要時間
10分

■セットの流れ
ポイントはiosデバイスとAndroidデバイスで設定が異なるのでそれを判別して実装します。
※ブラウザの仕様によるものなので、今後仕様に変更がある場合がございます。

サンプルページをベースに説明しますのでまずは下記ファイルをダウンロードしてください。

サンプルページ> 
サンプルダウンロード>

※ソースコード確認方法 
対象ページをChromeブラウザで開いて下記操作を行ってください。
windows:Ctrl + U 
mac:option + command + U


(1)
inputタグは下記のように設定してください。
accept属性、capture属性の設定で挙動が決まります。
※name属性は適宜設定
<input type="file" name="col_8" accept="image/*" capture="camera">
(2)
iosでのアクセスの場合、capture属性を削除します。
<script>
// iPhone(ios)
if ( navigator.userAgent.indexOf('iPhone') > 0 || navigator.userAgent.indexOf('iPad') > 0 || navigator.userAgent.indexOf('iPod') > 0){
	$('input[type="file"]').removeAttr('capture');
} 
</script>

※ヘッダーにjqueryの読み込みがない場合は下記設置をしてください。バージョンの指定はありません。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
ホーム画面の「その他、未完了のフォーム申請」のカウント対象


LIFF設定のフォームの種類で、「その他フォーム」を選択したフォームの申請が未対応だった場合に表示されます。

★ただしLIFF名に「本人確認」という名前を使用した場合はホーム画面の「その他、未完了のフォーム申請」には反映されませんのでご注意下さい。
既存の入力チェックを使用して、独自のチェックを行う方法
■目的
既存の入力チェックでは設定ができない内容は、独自のチェックを設定する必要があります。


■セット所要時間
10分


■セットの流れ
対象の回答部分に指定の設定を行います。
サンプルの例は、「いいえ」にチェックが入ることで独自のテキストでバリデーションが入ります。

フォームサンプルページ> 
フォームサンプルダウンロード>

※ソースコード確認方法 
対象ページをChromeブラウザで開いて下記操作を行ってください。
 windows:Ctrl + U 
mac:option + command + U


(1)回答部分のinputのclassに独自の関数を呼び出す設定
例)
<input type="radio" name="col_1" class="validate[funcCall[checkComment],required]"  value="いいえ">

(2)独自関数の内容を設定
こちらでエラーテキストの設定をします
例)
<script>
  // 独自関数
  function checkComment(field, rules, i, options){
      if ($('.q_a :radio:checked').val() == 'いいえ') {
        return `いいえの場合、送信できません`;
      }
    }
</script>
【オリジナルフォーム】マイスピー連携
■目的
オリジナルフォームで取得した情報をフォーム送信時にマイスピーにも送信することができます。
LINEで垢バンしてしまった時の保険としても活用できます。

■セット所要時間
2時間

■セットの流れ
(1)マイスピーでシナリオ設定(新規作成)
↓
(2)ECAIで取得したい情報をオリジナルフォームで作成
↓
(3)オリジナルフォームの完了ページにマイスピーに送信する処理を実装する
今回は姓名、メールアドレスをマイスピーに送信するサンプルとなります。
他の情報を取得したい場合は、マイスピー側の取得情報にECAI側のオリジナルフォームを合わせる必要があります。

サンプルページ> 
サンプルダウンロード>

※ソースコード確認方法 
対象ページをChromeブラウザで開いて下記操作を行ってください。
windows:Ctrl + U 
mac:option + command + U



(1)マイスピーでシナリオ設定


①マイスピーでシナリオを新規で作成
デフォルトで姓、名、メールアドレスの3項目を取得できるフォームが作成できます。
内容を変更される場合は、マイスピーのマニュアルに沿って変更をお願いします。
②登録フォーム設定
登録フォーム設定の確認画面の設定はスキップにして下さい


(2)ECAIで取得したい情報をオリジナルフォームで作成


①オリジナルフォームで作成
サンプルをダウンロードし、index.htmlを編集してオリジナルフォームの入力項目をマイスピーに合わせてください。
デフォルトでは姓、名、メールアドレスを取得するフォームとなっております。
オリジナルフォームの編集方法はこちら>
②送信時に入力内容をローカルストレージに格納


(3)オリジナルフォームの完了ページにマイスピーに送信する処理を実装する


先ほどローカルストレージに格納した情報を使って、それを完了ページでは自動でマイスピーに送信を行う処理を実装していきます。
ユーザー側には実際の入力内容は見えず、ローディング画像が表示されている間に裏側で送信処理が行われます。

①マイスピーの送信先URLを設定

A. 登録ページのURLをコピーします
B. complete.htmlのformタグのアクション部分に設定します
②送信項目の設定
マイスピーに送る情報をデフォルトから変更している場合は、formタグ内に項目を追加してください。

A. 登録フォームデザインの本文内の入力部分のソースをコピーします
B.complete.htmlのformタグ内に貼り付け
デフォルトでは姓、名、メールアドレスを取得するフォームになっていますが、送信項目が同じ場合はそのままでも大丈夫です。
③ローカルストレージの情報を自動でマイスピーに送信
ローカルストレージの情報を②のvalueに格納し、自動でマイスピーに送信する処理を追加します。
こちらも同様にデフォルトから変更した場合は、送信内容を手動で変更してください。
④送信テスト
最後にスマホのLINEアプリより送信テストを行って、マイスピーに入力内容が反映されるかご確認ください。
送信テストの方法はこちら>


ガイドの内容はあくまでもサンプルになります。  そのまま使用できない場合は対応するフォームにあわせての編集をお願いします。   表示設定が正常にできない場合、ソースチェックの有償サポートも行っております。  ご希望の場合は設定代行バナー、もしくはお問い合わせLINE、チャットワークよりご依頼をお願いします。
オリジナルフォームのファイルの変更前と変更後でソースコードの差分(違い)を確認する方法
■目的
変更した箇所のソースコードを確認することで、その後に編集する際に参考にすることができます。

■セット所要時間
5分

■セットの流れ


(1)
まず差分を確認したいファイルの変更前、変更後それぞれを用意してください。

↓

(2)
それぞれのファイルをテキストエディターで開きます。
※お使いのエディターで問題ありません。

↓

(3)
difffというオンラインで差分を確認できるサイトを使用しますので、下記サイトを開いて下さい。

difff>(4)
①、②のサンプルテキストは削除し、テキストエディターから変更前のファイルのソースコードをコピーして①にそれぞれ貼り付け下さい。
変更後のファイルのソースコードは②に貼り付け下さい。
その後③をクリック
(5)
ピンクのマーカー部分が差分(変更箇所)になります。
【オリジナルフォーム】2つの質問の回答を1つのname属性にまとめる方法
■目的
通常はname属性を2つに分ければ良いのですが、何らかの理由で2つの質問の回答を1つにまとめる必要があるときに使用します。
実装にはJavascriptの知識が必要となります。

■セット所要時間
10分

■セットの流れ
サンプルページをベースに説明しますので下記ファイルをダウンロードしてください。

サンプルページ> 
サンプルダウンロード>

※ソースコード確認方法 
対象ページをChromeブラウザで開いて下記操作を行ってください。
windows:Ctrl + U 
mac:option + command + U


(1)
サンプルページではname属性のcol_1に2つの回答を持たせる処理を実装します。
name属性の記載ルールにつきましてはこちら>

①col_1(連番は任意)のタイトルと回答をtype="hidden"にする。回答の方には任意のid属性を振る(今回はid="col_1")
②1つ目の回答に任意のid属性を振る(今回はid="q1")
③1つ目の回答に任意のname属性を振る(今回はname="q1")
④2つ目の回答に任意のid属性を振る(今回はid="q2")
⑤2つ目の回答に任意のname属性を振る(今回はname="q2")
<section class="person-form">
	<dl>
		<input type="hidden" name="col_1_title" value="設問1、設問2">
		<input type="hidden" id="col_1" name="col_1" value="">
		<dt>設問1<span>*</span></dt>
		<dd><input id="q1" type="text" name="q1" placeholder="入力してください" class="validate[required]" data-prompt-position="topLeft"></dd>

		<dt>設問2<span>*</span></dt>
		<dd><input id="q2" type="text" name="q2" placeholder="入力してください" class="validate[required]" data-prompt-position="topLeft"></dd>
	</dl>
</section>
(2)
設問が回答されたタイミングで2つの設問の回答をname属性のcol_1にまとめる
<script>
	$('#q1, #q2').on('change', function () {
		let q1 = $('#q1').val();
		let q2 = $('#q2').val();
		if (q1 !== '' && q2 !== '') {
			$('#col_1').val(q1 + ',' + q2);
		}
	});
</script>