ユーザーが送信すると、Googleドライブの特定のスプレッドシートにデータを投稿するフォームを自分のサイトに作成したいと思います。Google App Scriptsでこれを行うにはどうすればよいですか?
サンプルフォーム
<form method='post' action='https://script.google.com/macros/s/xxxx.....'>
Favorite Color <input type='text' value='' name='color' />
Favorite Ice Cream Flavor <input type='text' value='' name='flavor' />
<input type='button' value='submit' />
</form>
送信を押すと、Googleドライブスプレッドシートにレコードが作成されます。
| color | flavor |
red vanilla
これはGASで実行できますか、それとも(Javascriptを介して)GoogleドライブSDKに適したタスクですか?
アップデート
UIAppServiceにフォーム要素を追加する方法の例を使用してスクリプトを完成させました
これは私が一緒に投げた現在のスクリプトです...そしてそれは動作します!!!
var SPREADSHEET_ID = '0Aqa6DbU_0sv7dGNrMEEybjNrdm00MlpwTTNx...';
function doPost(e) {
var app = UiApp.getActiveApplication();
SpreadsheetApp.openById(SPREADSHEET_ID).getSheetByName('RequestInvites').appendRow([e.parameter.emailAddress, 'hash123']);
app.add(app.createLabel("Form submitted. Your email address is: '" + e.parameter.emailAddress));
return app;
}
function createForm(e){
var app = UiApp.createApplication();
var form = app.createFormPanel();
var flow = app.createFlowPanel();
flow.add(app.createLabel('Enter your email address to get an invitation').setId('inviteLabel'));
flow.add(app.createTextBox().setId('emailAddress').setName('emailAddress'));
flow.add(app.createSubmitButton("Request Invite"));
form.add(flow);
app.add(form);
return app;
}