送信データをGoogle Sheetsスプレッドシートに送る
formspree.json ファイルに Google Sheets アクションを追加することは、Formspreeダッシュボードで Google Sheets プラグインを追加することと同じ効果があります。
認証情報を取得する
CLI を通じて Google Sheets プラグインを使用するには、Google Cloud コンソールでサービスアカウントを作成する必要があります。
1. サービスアカウントを作成する
正しい Google アカウントでサインインした状態で、Google Cloud Console にアクセスします。右上にプロジェクトの一覧が表示されます。

既存のプロジェクトがある場合は、Formspree Test Account などのプロジェクト名が表示されたドロップダウンをクリックします。プロジェクトがない場合は表示が異なります。ドロップダウンをクリックすると、New Projects オプションのあるモーダルが表示されます。

プロジェクト名を入力して作成します。

2. サービスアカウントを作成する
検索バーまたはサイドメニューからサービスアカウントオプションにアクセスします。複数のプロジェクトがある場合は、使用するプロジェクトを指定する必要があります。
Create Service Account をクリックします。

サービス名と説明を入力し、Done をクリックします。

ダッシュボードにアカウントが一覧表示されます。formspree.json ファイルに使用するためにテーブル内のメールアカウントが必要になります。
3. 秘密鍵を取得する
サービスアカウントのダッシュボードで、先ほど作成したアカウント行の Actions 列をクリックします。次に Create Key をクリックし、JSON オプションを選択して Create をクリックします。

これにより、秘密鍵やサービスアカウントのデータを含むファイルがダウンロードされます。この情報は安全な場所に保管してください。formspree.json の設定手順で必要になります。
4. Drive および Spreadsheet API を有効にする
Formspree でスプレッドシートを作成するには、Google Drive と Sheets API を認証情報を使って利用できるようにする必要があります。そのため、Google Cloud Console の両方の API を有効にする必要があります。
プロジェクトを選択し、https://console.cloud.google.com にアクセスします。検索バーに Google Drive API と入力します。結果ページで Enable をクリックして API を有効にします。
次に Google Sheets API を検索して同じ手順を繰り返します。

formspree.json の設定
| キー | 型 | 説明 |
|---|---|---|
app | String | googlesheets でなければなりません |
privateKey | String | キーの取得手順で生成されたJSONファイル内の private_key データ |
serviceAccount | String | サービスアカウントの作成手順で取得したサービスアカウントのメールアドレス。サービスアカウントのデータが含まれるJSONファイルの client_email として確認できます。サービスアカウントのダッシュボードにアクセスしてメール列からコピーすることもできます。 |
type | String | sendToSpreadsheet でなければなりません |
sendInvitationTo | String | 任意。Formspreeが作成したスプレッドシートを共有するメールアドレス。ここに設定されたメールアドレスに招待メールが送信されます。デフォルト:フォームのターゲットメールアドレス、なければアカウントのメールアドレスの順。どちらも存在しない場合はコンソールにエラーが表示されます。 |
例
{
"forms": {
"support": {
"name": "Clients Spreadsheet",
"actions": [
{
"app": "googlesheets",
"privateKey": "$GOOGLE_SHEETS_KEY",
"serviceAccount": "formspree-test-service-account@formspree-test-account.iam.gserviceaccount.com",
"type": "sendToSpreadsheet",
"sendInvitationTo": "other@email.com"
}
]
}
}
}
バリデーションルール
バリデーションルールは暗黙的に設定されていません。
