# 送信データをGoogle Sheetsスプレッドシートに送る

> Formspree Docs · CLIの使用方法 · 2023年7月14日

`formspree.json` ファイルに **Google Sheets** アクションを追加することは、Formspreeダッシュボードで Google Sheets プラグインを追加することと同じ効果があります。

## 認証情報を取得する

CLI を通じて Google Sheets プラグインを使用するには、Google Cloud コンソールでサービスアカウントを作成する必要があります。

### 1\. サービスアカウントを作成する

正しい Google アカウントでサインインした状態で、[Google Cloud Console](https://console.cloud.google.com) にアクセスします。右上にプロジェクトの一覧が表示されます。

  
![mceclip0.png](/images/zendesk/20ae06b8574ab09d.png)

既存のプロジェクトがある場合は、_Formspree Test Account_ などのプロジェクト名が表示されたドロップダウンをクリックします。プロジェクトがない場合は表示が異なります。ドロップダウンをクリックすると、_New Projects_ オプションのあるモーダルが表示されます。  
  
![mceclip1.png](/images/zendesk/b1ba54d504b7c56f.png)

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

  
![mceclip2.png](/images/zendesk/499671dac6e1fab7.png)

### 2\. サービスアカウントを作成する

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

**Create Service Account** をクリックします。

![mceclip3.png](/images/zendesk/1a64a681d70abb18.png)

サービス名と説明を入力し、**Done** をクリックします。  
  
![mceclip4.png](/images/zendesk/ead9adf89fba5ab5.png)

ダッシュボードにアカウントが一覧表示されます。`formspree.json` ファイルに使用するためにテーブル内のメールアカウントが必要になります。

## ![mceclip5.png](/images/zendesk/bf15ef4d16106432.png)

### 3\. 秘密鍵を取得する

サービスアカウントのダッシュボードで、先ほど作成したアカウント行の **Actions** 列をクリックします。次に **Create Key** をクリックし、**JSON** オプションを選択して **Create** をクリックします。  
  
![mceclip6.png](/images/zendesk/e6e5556e0c0d4fe5.png)  
  

これにより、秘密鍵やサービスアカウントのデータを含むファイルがダウンロードされます。この情報は安全な場所に保管してください。formspree.json の設定手順で必要になります。

### 4\. Drive および Spreadsheet API を有効にする

Formspree でスプレッドシートを作成するには、Google Drive と Sheets API を認証情報を使って利用できるようにする必要があります。そのため、Google Cloud Console の両方の API を有効にする必要があります。

プロジェクトを選択し、[https://console.cloud.google.com](https://console.cloud.google.com) にアクセスします。検索バーに **Google Drive API** と入力します。結果ページで **Enable** をクリックして API を有効にします。  
  
次に **Google Sheets API** を検索して同じ手順を繰り返します。  
![mceclip0.png](/images/zendesk/59935ef1cfded160.png)

## formspree.json の設定

| キー | 型 | 説明 |
| --- | --- | --- |
| `app` |  String | `googlesheets` でなければなりません |
| `privateKey` |  String | [**キーの取得**](#h_01EVS55S2WNW8S6SM40QFGMZQG)手順で生成されたJSONファイル内の `private_key` データ |
| `serviceAccount` |  String | **サービスアカウントの作成**手順で取得したサービスアカウントのメールアドレス。サービスアカウントのデータが含まれるJSONファイルの `client_email` として確認できます。サービスアカウントのダッシュボードにアクセスしてメール列からコピーすることもできます。 |
| `type` |  String | `sendToSpreadsheet` でなければなりません |
| `sendInvitationTo` |  String | 任意。Formspreeが作成したスプレッドシートを共有するメールアドレス。ここに設定されたメールアドレスに招待メールが送信されます。デフォルト：フォームのターゲットメールアドレス、なければアカウントのメールアドレスの順。どちらも存在しない場合はコンソールにエラーが表示されます。 |

**例**

```javascript
{
  "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"
        }
      ]
    }
  }
}
```

## バリデーションルール

バリデーションルールは暗黙的に設定されていません。
