LoginSignup
0
0

Appsheet API を Lambda で送信する方法

Posted at

はじめに

AppSheetは、ユーザーがコーディング知識なしでカスタムモバイルアプリを作成できるプラットフォームです。

AppSheet APIを使ってAWS Lambda関数からデータを操作する方法について解説します。
この記事では、AppSheetのAPIを使って、AWS Lambda経由でデータを操作する方法に焦点を当てています。
API Keyの取得方法からLambda関数の作成、APIの利用方法までを順を追って説明します。

もくじ

  1. AppSheet API Key を取得する
  2. Lambda
  3. 参考

AppSheet API Key を取得する

AppSheet APIを使うには、API Keyを取得する必要があります。
以下の手順でAPI Keyを取得してください。

  1. アプリケーションのダッシュボードにアクセス
    • API Keyはアプリケーションごとに異なります。
  2. 「Settings > Integrations」をクリック
  3. 「Create Application Access Key」をクリック
  4. 「App Id」と「Application Access Keys」をメモ

Lambda

AWS Lambdaを使ってAppSheet APIと通信を行います。
まずはLambda Layerを設定し、次にLambda関数を作成します。

Lambda Layer を作成する

Lambdaでrequestsライブラリを使うためには、最初にローカル環境でのセットアップが必要です。

$ mkdir python && cd python
$ pip3 install -t python requests
$ zip -r python.zip python/

上記のコマンドを実行後、作成したpython.zipをLambda Layerにアップロードします。

Lambda 関数を作成する

  1. 新しいLambda関数を作成し、作成したLambda Layerをアタッチします。

  2. 環境変数を設定する

    APPSHEET_APP_ID = {先ほど取得した「App Id」を入力して下さい。}
    APPSHEET_APPLICATION_ACCESS_KEY = {先ほど取得した「Application Access Keys」を入力して下さい。}
    
  3. 以下のソースコードをlambda_function.pyに貼り付けます。

このコードはtestsテーブルにtest.pngファイルのパスを更新するものです。Row IDはkeyとして必須です。

import os
import json
import requests

def lambda_handler(event, context):
    # 環境変数から AppSheet API の設定を取得
    app_id = os.environ.get('APPSHEET_APP_ID')
    application_access_key = os.environ.get('APPSHEET_APPLICATION_ACCESS_KEY')
    table_name = 'tests'

    api_url = f'https://api.appsheet.com/api/v2/apps/{app_id}/tables/{table_name}/Action'
    headers = {
        'ApplicationAccessKey': application_access_key,
        'Content-Type': "application/json"
    }

    # 送信するデータ
    data = {
        "Action": "Edit",
        "Properties": {
            "Locale": "en-US",
            "Timezone": "Pacific Standard Time"
        },
        "Rows": [
            {
                "Row ID": "Di8JAaCu2ItMKd5aqWi7",
                "image": "/appsheet/data/NewApp-456626611/tests/test.png"
            }
        ]
    }

    # POSTリクエストの送信
    response = requests.post(api_url, headers=headers, data=json.dumps(data))
    
    # レスポンスの確認
    if response.status_code == 200:
        print("データの送信に成功しました。")
        print(response.json())
    else:
        print("データの送信に失敗しました。")
        print("status_code", response.status_code)
        print("text", response.text)
    
    return {
        'statusCode': 200,
        'body': json.dumps('Success!')
    }

まとめ

この記事では、AppSheet API Keyの取得方法から始まり、AWS Lambdaを介してAppSheet APIを使うための設定までを説明しました。
これらの手順に従って、AppSheetとAWS Lambdaを連携させることで、より強力なアプリケーションを構築できるでしょう。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0