Googleスプレッドシート連携CGI版(v4.2.7~)

Googleスプレッドシートのフォーム入力のカスタマイズって大変ですよね。メールフォームプロならそれなりに簡単に送信内容をGoogleスプレッドシートにデータをエクスポートできます。今回は前回のJavascript版とは異なりCGI経由でGoogleスプレッドシートに値を送信する仕組みのものです。

本機能はメールフォームプロから送信された内容をGoogleスプレッドシートに反映します。

サンクス機能を有効にする

config.cgiを編集し、

push @Modules,’spreadsheet’;

を有効にします。

Googleドライブを開く

Googleドライブのマイドライブを開きます。

新規をクリックして適当な名前のフォルダを作成します。今回は例としてmailformproというフォルダを作成します。

ほいで作成したmailformproというフォルダに移動します。

新規をクリックしてGoogleスプレッドシートを作成します。

ファイル名は適当でよいですが、今回はmfpという名前にします。

スプレッドシートの名前をmfpdataに変更しましょう。

Googleドライブに戻り、作成したスプレッドシートmfpを右クリックすると表示される共有可能なリンクを取得をクリック。

表示されたURLをコピーしましょう。 https://drive.google.com/open?id=1mdfYAQuHuI0cjt2rmoM4HUiWeCPnN6i6r_FOqsAXBAc みたいなやつです。id=以降の文字列が大事な部分です。 この際、自動的に共有がオンになるため必ず共有を無効に再設定してください。

新規をクリックして[その他]→[Google Apps Script]を作成します。

Google Apps Scriptが表示されていない場合は [新規]→[その他]→[アプリを追加]をクリックし、左上のセレクトからby Googleを選択してください。 Google Apps Scriptが表示されると思うので、接続をクリックしてください。

同梱されている/examples/code.gs.txtの中身のコードをコピー&ペーストし、保存します。

ドキュメント名はmfpconnectとしました。

[公開]→[ウェブアプリケーションとして導入]をクリック。

アプリケーションにアクセスできるユーザーを全員(匿名ユーザーを含む)に設定し導入をクリック。 許可が求められる場合は許可します。

表示される現在のウェブアプリケーションのURLをコピーしましょう。これで準備はあらかた完了です。

一連の作業でコピーした情報は シートの名前(例ではmfpdata) 共有可能なリンク 現在のウェブアプリケーションのURL の3つがあります。こちらを同梱されている/mailformpro/configs/spreadsheet.cgiに設定します。

さらに最後に作成したGoogleスプレッドシートを開きましょう。

1行目が見出し行となります。 ここに記録したい項目名を入力します。本項ではこのサンプルHTMLを例にして項目名を入力していきます。入力欄のname属性を見出しに設定するので mfp_serial、mfp_date、姓、名、セイ、メイ、性別、emailと設定します。

これで連携の作業は完了です。

本機能はこちらを参考にさせていただきました。

コメント欄

2024-05-23 14:34:58kawaさん
承知しました、ご連絡ありがとうございました

すみませんお手すきでコメントの名前、本名で送ってしまったので変えておいていただければ幸いです。
2024-05-23 11:39:42和田さん
そうなんです、Googleのサイトはころころ変わっちゃうんですよね・・・。
すいません、現在多忙につき更新できるのは相当先になりそうです・・・。
2024-05-23 02:17:29kawaさん
和田様

いつもmailformpro使わせていただいています。ありがとうございます。

「Googleスプレッドシート連携CGI版(v4.2.7~)」のページを参照してGoogleスプレッドシートとの連携を試しているのですがGoogleのメニューがかなり更新されておりうまく設定できておりません。

たとえば右クリックで表示される「共有可能なリンクを取得」というメニュー自体がなくなっており
ID的なものの取得がわかりませんでした。
可能であれば、該当ページのアップデートをしていただけると大変助かります。

何卒宜しくお願いいたします。
2024-11-17 03:01:31negihachiさん
半年ぐらい前のコメントに横槍いれるのもなんですが、
つい最近この対応をしたので記録しておきます。
他のシート連携したいユーザさんたちの参考になれば幸いです。

★和田さま、こちらの機能とても助かりました。いつもmfpには助けられてます。本当にありがとうございます。

---

◆スプレッドシートのリンク
形式は多少異なりますが、必要なid部分は代わりありませんので
ttps://docs.google.com/spreadsheets/d/(ここに表示されている長文の英数字)/edit?usp=sharing
のカッコ部分を抜き出してあげてください。

◆Apps Script側の操作
[公開]→[ウェブアプリケーションとして導入]

「デプロイ」→「新しいデプロイ」
という名目になっていますが、やることは変わりません。
/examples/code.gs.txt の内容を貼り付けて、デプロイしてあげましょう。

次のユーザーとして実行:自分(スクリプトの所有者)
アクセスできるユーザー:全員
で、認証を求められたら許可してあげる…で問題ないはず。

◆ついでにその後の流れ(記事本文と重複)
- スプレッドシート1行目にフォーム項目を埋める(エレメントリスト取得が便利)
- 紐づけのためスプレッドシートのシート名を指定する
- /mailformpro/configs/spreadsheet.cgi に穴埋め

で設定できました。
すでにkawaさまは解決済みだと思いますが、念のため。
2024-11-17 03:01:45negihachiさん
半年ぐらい前のコメントに横槍いれるのもなんですが、
つい最近この対応をしたので記録しておきます。
他のシート連携したいユーザさんたちの参考になれば幸いです。

★和田さま、こちらの機能とても助かりました。いつもmfpには助けられてます。本当にありがとうございます。

---

◆スプレッドシートのリンク
形式は多少異なりますが、必要なid部分は代わりありませんので
ttps://docs.google.com/spreadsheets/d/(ここに表示されている長文の英数字)/edit?usp=sharing
のカッコ部分を抜き出してあげてください。

◆Apps Script側の操作
[公開]→[ウェブアプリケーションとして導入]

「デプロイ」→「新しいデプロイ」
という名目になっていますが、やることは変わりません。
/examples/code.gs.txt の内容を貼り付けて、デプロイしてあげましょう。

次のユーザーとして実行:自分(スクリプトの所有者)
アクセスできるユーザー:全員
で、認証を求められたら許可してあげる…で問題ないはず。

◆ついでにその後の流れ(記事本文と重複)
- スプレッドシート1行目にフォーム項目を埋める(エレメントリスト取得が便利)
- 紐づけのためスプレッドシートのシート名を指定する
- /mailformpro/configs/spreadsheet.cgi に穴埋め

で設定できました。
すでにkawaさまは解決済みだと思いますが、念のため。