Soracom

Users

ドキュメント
Home ドキュメント SORACOM Flux Getting Started

Webhook アクションの Google Service Account 認証を利用して Google スプレッドシートに行を追加する

Webhook アクション は、Google Service Account による認証 (OAuth 2.0 アクセストークンの自動取得) に対応しています。Google Service Account 認証を利用すると、Flux アプリから Google Sheets API や Google BigQuery API などの Google API を呼び出せます。

ここでは、イベントソースを API/マニュアル実行イベントソース として、Flux アプリのチャネルを表すエンドポイントにリクエストを送信したときに Flux アプリを起動して、Google スプレッドシートに行を追加するように設定します。

ステップ 1: Google Cloud で Service Account を作成して権限を設定する

Flux の Webhook アクションが、お客様の Google Cloud プロジェクトの Google Sheets API を呼び出すために、Service Account を作成し、JSON キーをダウンロードします。また、書き込み対象の Google スプレッドシートに Service Account のアクセス権を付与します。

項目説明
Google Sheets API の有効化

Google Cloud Console で Service Account を作成するプロジェクトを選択し、Google Sheets API を有効にします。

BigQuery や Drive など別の Google API を利用する場合は、利用する API ごとに有効化してください。

Service Account の作成

IAM と管理 → サービスアカウント[サービス アカウントを作成] をクリックし、以下のように設定します。

  • [サービス アカウント名]: 任意の名前を入力します。例: flux-sheets-integration
  • [サービス アカウント ID]: 自動入力のままで構いません。
  • [サービス アカウントの説明]: 用途がわかるように記述します。

[作成して続行] をクリックします。ロール選択はスキップし、[完了] をクリックします。

作成された Service Account のメールアドレス (例: flux-sheets-integration@<PROJECT_ID>.iam.gserviceaccount.com) を、これ以降 ${service_account_email} と表記します。

JSON キーの作成

作成した Service Account を開き、[キー][鍵を追加][新しい鍵を作成] の順にクリックします。[キーのタイプ] で「JSON」を選択し、[作成] をクリックします。

JSON ファイルがダウンロードされます。これ以降、このファイルの内容を ${service_account_json} と表記します。

ダウンロードした JSON ファイルは秘密情報です。チャットツールやメール、Git リポジトリなどには貼り付けないでください。認証情報ストアに登録した後はローカルからも削除することを推奨します。

Google スプレッドシートの共有

書き込み対象の Google スプレッドシートを開き、[共有] をクリックします。${service_account_email} を入力し、権限を「編集者」に設定して送信します。[通知] のチェックは外してください。

スプレッドシートの URL https://docs.google.com/spreadsheets/d/<SPREADSHEET_ID>/edit から取得した <SPREADSHEET_ID> を、これ以降 ${spreadsheet_id} と表記します。

プロジェクト全体ではなく、必要なリソース単位で個別にアクセス権を付与する (最小権限の原則) ことを推奨します。

ステップ 2: 認証情報ストアに Google Service Account (JSON) を登録する

Flux から Google API を呼び出すために、Service Account の JSON キーを SORACOM ユーザーコンソールに登録します。

具体的には、認証情報ストアの「認証情報を登録」画面で以下のように登録します。この画面の表示方法については、認証情報を登録する を参照してください。

項目説明
[認証情報 ID]認証情報を識別するために任意の名前を入力します。例: flux-sheets-integration
[種別]「Google Service Account (JSON)」を選択します。
[Credentials]${service_account_json} (ステップ 1 でダウンロードした JSON ファイルの内容) をすべて貼り付けます。

設定項目について詳しくは、認証情報ストアのリファレンス を参照してください。

ステップ 3: Flux アプリを作成する

Webhook アクションを実行するための Flux アプリを作成します。

  1. ユーザーコンソールにログイン し、Flux アプリを作成するカバレッジタイプを選択します。

    詳しくは、SORACOM ユーザーコンソールで表示するカバレッジタイプを変更する を参照してください。

  2. [メニュー][SORACOM Flux][Flux アプリ] の順にクリックします。

  3. [+新しい Flux アプリを作成する] をクリックします。

  4. 以下の項目を設定します。

    項目説明
    [名前]Flux アプリの名前を入力します。
    [概要]Flux アプリの概要を入力します。
  5. [作成] をクリックします。

    Flux アプリが作成され、SORACOM Flux Studio の [Studio] タブが表示されます。

ステップ 4: Flux アプリにイベントソースと Webhook アクションを追加する

Flux アプリのチャネルを表すエンドポイントにリクエストを送信したときに、Google スプレッドシートに行を追加するように、Webhook アクションを作成します。

Webhook アクションについて詳しくは、アクションリファレンスの Webhook アクション を参照してください。Google Service Account 認証の設定項目について詳しくは、Google Service Account を参照してください。

  1. SORACOM Flux Studio の [Studio] タブで、[+チャネルを作成する] をクリックします。

    「新しいチャネルを作成」画面が表示されます。

  2. [API/マニュアル実行][次へ] の順にクリックします。

  3. [チャネルを作成する] をクリックします。

    イベントソースに連結したチャネルが作成され、チャネルの詳細画面が表示されます。

  4. [アクション][+アクションを追加] の順にクリックします。

    「新しいアクションを作成」画面が表示されます。

  5. [Webhook][OK] の順にクリックします。

    「新しいアクションを作成: Webhook」画面が表示されます。

  6. 以下の項目を設定します。

    項目説明
    [名前]Webhook アクションの名前を入力します。
    [概要]Webhook アクションの概要を入力します。
    [有効]「有効」にします。
  7. 続けて、[CONFIG] の以下の項目を設定します。

    項目説明
    [HTTP メソッド]Webhook の HTTP メソッドを選択します。ここでは「POST」を選択します。
    [URL]

    Google Sheets API の values.append エンドポイントを入力します。ここでは ${spreadsheet_id} を含めた以下の URL を入力します。

    https://sheets.googleapis.com/v4/spreadsheets/${spreadsheet_id}/values/Sheet1!A1:append?valueInputOption=USER_ENTERED

    [認証方法]「Google Service Account」を選択します。
    [認証設定]

    指定できるスコープについて詳しくは、Google for Developers の OAuth 2.0 Scopes for Google APIs を参照してください。[サブジェクト] は、Google Workspace のドメイン全体の委任を利用する場合にのみ指定します。

    [HTTP ヘッダー][HTTP ボディ] で「application/json」を選択すると、content-typeapplication/json が自動的に入力されます。
    [HTTP ボディ]

    Webhook の HTTP リクエストの HTTP ボディを設定します。ここでは「application/json」を選択して、入力欄に以下を入力します。

    {
      "majorDimension": "ROWS",
      "values": [
        ["${payload.deviceId}", "${payload.timestamp}", "${payload.temperature}", "${payload.humidity}"]
      ]
    }
    
  8. [作成する] をクリックします。

    Webhook アクションが作成され、チャネルの詳細画面の [アクション] タブに戻ります。

動作確認

API/マニュアル実行でメッセージを送信する

  1. ステップ 4: Flux アプリにイベントソースと Webhook アクションを追加する で作成した API/マニュアル実行イベントソースをクリックします。

  2. [テスト実行] をクリックし、[Content Type] で「application/json」を選択して、[Body] に以下のデータを入力します。

    {
      "deviceId": "test-device-001",
      "timestamp": "2026-05-13T11:00:00+09:00",
      "temperature": 25.3,
      "humidity": 60.5
    }
    
  3. [実行] をクリックします。

Google スプレッドシートで行が追加されたことを確認する

ステップ 1: Google Cloud で Service Account を作成して権限を設定する で共有した Google スプレッドシートを開き、最終行に手順 2 で入力した deviceIdtimestamptemperaturehumidity の値が追記されていることを確認します。

Flux アプリの実行履歴を確認する

SORACOM Flux Studio の [実行履歴] タブでも、実行履歴を確認できます。

  1. ユーザーコンソールにログイン し、Flux アプリを作成したカバレッジタイプを選択します。

    たとえば、日本カバレッジに Flux アプリを作成した場合は、日本カバレッジの表示に変更します。詳しくは、SORACOM ユーザーコンソールで表示するカバレッジタイプを変更する を参照してください。

  2. [メニュー][SORACOM Flux][Flux アプリ] の順にクリックします。

  3. 作成した Flux アプリをクリックします。

  4. [実行履歴] をクリックします。

    チャネルごとに、[MESSAGE][CONTEXT]、そのチャネルで実行されたアクションの [入力][出力] が表示されます。詳しくは、実行履歴 (ログ) を参照してください。

    Webhook アクションの [出力] で、updates.updatedRows1 であれば、Google スプレッドシートへの行追加が成功しています。