返回首頁AppSheet

AppSheet API 串接指南:與外部系統整合【2025完整教學】

15 min 分鐘閱讀
#AppSheet#API#REST API#系統整合#Webhook#Zapier#Make#自動化#企業應用#No-Code

AppSheet API 串接指南:與外部系統整合【2025完整教學】

AppSheet 不只是獨立的 App,還能跟你的其他系統連接。

透過 API,AppSheet 可以和 ERP、CRM、電商平台、自建系統整合。

這篇教學會教你如何使用 AppSheet API,從取得 API Key 到實際串接。

想先了解 AppSheet 基礎功能,請參考 AppSheet 完整指南


AppSheet API 是什麼?

先釐清 API 能做什麼。

REST API 概述

AppSheet 提供標準的 REST API。

REST(Representational State Transfer)是一種網路 API 設計風格,幾乎所有程式語言都能呼叫。

AppSheet API 的特點:

  • 標準 HTTP 方法(GET、POST、PUT、DELETE)
  • JSON 格式傳輸資料
  • 基於 Application ID 和 Access Key 認證
  • 支援 CRUD 完整操作

可以做什麼?

透過 API,你可以:

操作說明用途範例
讀取資料從 AppSheet 取得資料在網站顯示庫存數量
新增資料從外部系統寫入 AppSheet電商訂單自動匯入
更新資料修改 AppSheet 中的資料ERP 同步更新狀態
刪除資料移除 AppSheet 中的資料過期資料自動清理

使用限制

重要提醒:API 需要 Core 方案以上。

方案API 支援
免費不支援
Starter不支援
Core支援
Enterprise支援(更高限制)

詳細方案比較請參考 AppSheet 費用完整解析

其他限制:

  • 每分鐘請求數限制(Core:10 req/min)
  • 每次回傳最多 500 筆資料
  • API Key 需妥善保管

插圖 1:AppSheet API 架構示意圖

API 存取設定

使用 API 前,需要先設定存取權限。

步驟 1:啟用 API 功能

Step 1:進入設定

登入 AppSheet 後,開啟你的 App

點選「Settings」→「Integrations」

Step 2:啟用 API

找到「IN: from cloud services to your app」區塊

將「Enable」設為開啟

Step 3:取得認證資訊

記下以下兩個值:

  • App ID:你的 Application ID
  • Access Key:點「Create Application Access Key」產生

步驟 2:設定 Table 權限

不是所有 Table 都能透過 API 存取,需要個別設定。

設定方式:

  1. 進入「Data」→「Tables」
  2. 選擇要開放 API 的 Table
  3. 點選「Are updates allowed?」
  4. 確認「All changes」或「Adds and updates only」

權限說明:

設定API 可用操作
All changes新增、更新、刪除
Adds and updates only新增、更新(不能刪除)
Adds only只能新增
Read-Only只能讀取

步驟 3:安全性考量

API Key 洩漏會有嚴重後果,請務必注意。

安全建議:

  1. 不要把 API Key 放在前端程式碼

    • JavaScript 中的 Key 任何人都看得到
    • 要放在後端伺服器
  2. 使用 HTTPS

    • AppSheet API 強制使用 HTTPS
    • 確保資料傳輸加密
  3. 定期更換 Key

    • 建議每 3-6 個月換一次
    • 發現可能洩漏時立即更換
  4. IP 白名單(Enterprise)

    • Enterprise 方案可設定只允許特定 IP

API 操作教學

實際的 API 呼叫方式。

API 端點格式

AppSheet API 的基本端點:

https://api.appsheet.com/api/v2/apps/{appId}/tables/{tableName}/Action

參數說明:

  • {appId}:你的 Application ID
  • {tableName}:資料表名稱

讀取資料(Find)

取得資料表中的資料。

請求範例:

curl -X POST \
  'https://api.appsheet.com/api/v2/apps/YOUR_APP_ID/tables/Orders/Action' \
  -H 'ApplicationAccessKey: YOUR_ACCESS_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "Action": "Find",
    "Properties": {
      "Locale": "zh-TW",
      "Selector": "Filter(Orders, [Status] = \"待處理\")"
    }
  }'

參數說明:

參數說明
Action"Find" 表示讀取
Locale語系設定
Selector篩選條件(使用 AppSheet 公式語法)

回傳格式:

{
  "Rows": [
    {
      "OrderID": "ORD-001",
      "Customer": "王小明",
      "Amount": 1500,
      "Status": "待處理"
    },
    {
      "OrderID": "ORD-002",
      "Customer": "李小華",
      "Amount": 2300,
      "Status": "待處理"
    }
  ]
}

新增資料(Add)

新增一筆資料到 Table。

請求範例:

curl -X POST \
  'https://api.appsheet.com/api/v2/apps/YOUR_APP_ID/tables/Orders/Action' \
  -H 'ApplicationAccessKey: YOUR_ACCESS_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "Action": "Add",
    "Properties": {
      "Locale": "zh-TW"
    },
    "Rows": [
      {
        "OrderID": "ORD-003",
        "Customer": "張小美",
        "Amount": 980,
        "Status": "待處理",
        "CreatedAt": "2025-12-15"
      }
    ]
  }'

重要提醒:

  • 必填欄位不能漏
  • Key 欄位值不能重複
  • 日期格式要正確

更新資料(Edit)

修改現有資料。

請求範例:

curl -X POST \
  'https://api.appsheet.com/api/v2/apps/YOUR_APP_ID/tables/Orders/Action' \
  -H 'ApplicationAccessKey: YOUR_ACCESS_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "Action": "Edit",
    "Properties": {
      "Locale": "zh-TW"
    },
    "Rows": [
      {
        "OrderID": "ORD-001",
        "Status": "已出貨"
      }
    ]
  }'

注意: 必須包含 Key 欄位(此例中是 OrderID),系統才知道要更新哪一筆。

刪除資料(Delete)

刪除指定資料。

請求範例:

curl -X POST \
  'https://api.appsheet.com/api/v2/apps/YOUR_APP_ID/tables/Orders/Action' \
  -H 'ApplicationAccessKey: YOUR_ACCESS_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "Action": "Delete",
    "Properties": {
      "Locale": "zh-TW"
    },
    "Rows": [
      {
        "OrderID": "ORD-003"
      }
    ]
  }'

注意: 只需要提供 Key 欄位即可。

插圖 2:AppSheet API 操作流程圖

整合範例

實際的整合應用場景。

與 Zapier 整合

Zapier 是最常用的自動化整合平台。

方式 1:AppSheet → Zapier(使用 Webhook)

當 AppSheet 有事件時,觸發 Zapier。

設定步驟:

  1. 在 Zapier 建立新 Zap
  2. Trigger 選擇「Webhooks by Zapier」→「Catch Hook」
  3. 複製 Webhook URL
  4. 在 AppSheet Automation 設定 Call Webhook
  5. 把 Zapier URL 貼上
  6. 設定要傳送的資料

方式 2:Zapier → AppSheet(使用 API)

從 Zapier 寫入資料到 AppSheet。

設定步驟:

  1. 在 Zapier 建立新 Zap
  2. 設定 Trigger(例如:新 Google Form 回應)
  3. Action 選擇「Webhooks by Zapier」→「Custom Request」
  4. Method:POST
  5. URL:AppSheet API 端點
  6. Headers:加入 ApplicationAccessKey
  7. Body:JSON 格式的資料

與 Make (Integromat) 整合

Make 是另一個強大的自動化平台,比 Zapier 更彈性。

Make 的優勢:

  • 視覺化流程設計
  • 複雜邏輯處理
  • 費用較低

設定步驟:

  1. 建立新 Scenario
  2. 新增「HTTP」→「Make a request」模組
  3. URL:AppSheet API 端點
  4. Method:POST
  5. Headers:
    • ApplicationAccessKey: YOUR_KEY
    • Content-Type: application/json
  6. Body:JSON 格式

範例:電商訂單同步

{
  "Action": "Add",
  "Properties": {"Locale": "zh-TW"},
  "Rows": [{
    "OrderID": "{{1.order_id}}",
    "Customer": "{{1.customer_name}}",
    "Amount": "{{1.total_amount}}",
    "Status": "待處理"
  }]
}

{{1.xxx}} 是 Make 的變數語法,會自動代入上一個模組的資料。

與自建系統整合

如果有自己的系統,可以直接用程式呼叫 API。

Python 範例:

import requests
import json

# API 設定
APP_ID = "your-app-id"
ACCESS_KEY = "your-access-key"
TABLE_NAME = "Orders"

# API 端點
url = f"https://api.appsheet.com/api/v2/apps/{APP_ID}/tables/{TABLE_NAME}/Action"

# Headers
headers = {
    "ApplicationAccessKey": ACCESS_KEY,
    "Content-Type": "application/json"
}

# 新增訂單
def add_order(order_data):
    payload = {
        "Action": "Add",
        "Properties": {"Locale": "zh-TW"},
        "Rows": [order_data]
    }

    response = requests.post(url, headers=headers, json=payload)
    return response.json()

# 使用範例
new_order = {
    "OrderID": "ORD-100",
    "Customer": "陳大明",
    "Amount": 5000,
    "Status": "待處理"
}

result = add_order(new_order)
print(result)

Node.js 範例:

const axios = require('axios');

const APP_ID = 'your-app-id';
const ACCESS_KEY = 'your-access-key';
const TABLE_NAME = 'Orders';

const url = `https://api.appsheet.com/api/v2/apps/${APP_ID}/tables/${TABLE_NAME}/Action`;

async function addOrder(orderData) {
  const payload = {
    Action: 'Add',
    Properties: { Locale: 'zh-TW' },
    Rows: [orderData]
  };

  const response = await axios.post(url, payload, {
    headers: {
      'ApplicationAccessKey': ACCESS_KEY,
      'Content-Type': 'application/json'
    }
  });

  return response.data;
}

// 使用範例
const newOrder = {
  OrderID: 'ORD-101',
  Customer: '林小芳',
  Amount: 3200,
  Status: '待處理'
};

addOrder(newOrder).then(result => console.log(result));

API 串接太複雜? 與外部系統整合需要考慮錯誤處理、安全性、效能。

預約架構諮詢,讓我們幫你設計穩定的整合方案。


進階應用

更複雜的 API 使用技巧。

Webhook 接收

除了呼叫外部 API,AppSheet 也能接收外部系統的通知。

使用場景:

  • 電商平台訂單狀態更新
  • 金流系統付款通知
  • 外部系統觸發 AppSheet 動作

設定方式:

  1. 在 AppSheet 建立 Action
  2. Action 類型選「Data: execute an action on a set of rows」
  3. 設定要執行的動作
  4. 在 Settings → Integrations 找到此 Action 的 URL
  5. 提供 URL 給外部系統呼叫

詳細 Webhook 設定請參考 AppSheet Automation 教學

批次操作

一次處理多筆資料,提高效率。

新增多筆資料:

{
  "Action": "Add",
  "Properties": {"Locale": "zh-TW"},
  "Rows": [
    {"OrderID": "ORD-201", "Customer": "A客戶", "Amount": 1000},
    {"OrderID": "ORD-202", "Customer": "B客戶", "Amount": 2000},
    {"OrderID": "ORD-203", "Customer": "C客戶", "Amount": 3000}
  ]
}

注意事項:

  • 單次最多 500 筆
  • 超過建議分批處理
  • 錯誤會整批失敗,沒有部分成功

錯誤處理

API 呼叫可能失敗,要做好錯誤處理。

常見錯誤碼:

錯誤碼原因解決方式
400請求格式錯誤檢查 JSON 格式、必填欄位
401認證失敗確認 Access Key 正確
403權限不足確認 Table 已開放 API
404找不到資源確認 App ID、Table 名稱
429超過請求限制降低請求頻率
500伺服器錯誤稍後重試

錯誤處理範例(Python):

import requests
import time

def api_call_with_retry(url, headers, payload, max_retries=3):
    for attempt in range(max_retries):
        try:
            response = requests.post(url, headers=headers, json=payload)

            if response.status_code == 200:
                return response.json()
            elif response.status_code == 429:
                # 超過限制,等待後重試
                time.sleep(60)
                continue
            else:
                # 其他錯誤
                print(f"錯誤 {response.status_code}: {response.text}")
                return None

        except Exception as e:
            print(f"連線錯誤: {e}")
            time.sleep(5)
            continue

    return None

插圖 3:API 整合流程範例

實用技巧

一些提高效率的技巧。

API 測試工具

開發時可以用工具測試 API,不用寫程式。

推薦工具:

  1. Postman

    • 最流行的 API 測試工具
    • 可儲存請求、環境變數
    • 支援團隊協作
  2. Insomnia

    • 介面簡潔
    • 開源免費
    • 支援 GraphQL
  3. curl

    • 命令列工具
    • 所有系統都有
    • 適合快速測試

效能優化

讓 API 跑得更快。

建議:

  1. 使用 Selector 過濾

    • 不要取全部資料再程式過濾
    • 在 API 就指定條件
  2. 只取需要的欄位

    • 減少傳輸資料量
  3. 批次處理

    • 多筆資料一次送
    • 減少 API 呼叫次數
  4. 快取機制

    • 不常變動的資料可快取
    • 減少重複呼叫

監控與日誌

追蹤 API 使用狀況。

建議做法:

  • 記錄每次 API 呼叫的時間、結果
  • 監控錯誤率
  • 設定異常警報
  • 定期檢視使用量

FAQ

AppSheet API 免費嗎?

不是。需要 Core 方案以上才能使用 API。

詳細費用請參考 AppSheet 費用解析

API 有請求次數限制嗎?

有。Core 方案每分鐘 10 次,Enterprise 更高。

超過限制會收到 429 錯誤,需等待後重試。

可以從前端直接呼叫 AppSheet API 嗎?

技術上可以,但強烈不建議。

API Key 會暴露在前端程式碼,任何人都能看到並濫用。

應該從後端伺服器呼叫 API。

AppSheet API 支援 GraphQL 嗎?

不支援。AppSheet 只提供 REST API。

如果需要 GraphQL,要自己建一層中間層轉換。

如何取得多個 Table 的資料?

需要分別呼叫每個 Table 的 API。

AppSheet API 不支援 JOIN 或一次查詢多個 Table。

Webhook 和 API 有什麼不同?

API(主動呼叫):

  • 你主動向 AppSheet 請求資料
  • 適合:需要資料時才取

Webhook(被動接收):

  • AppSheet 有事件時通知你
  • 適合:即時反應、事件驅動

如果想用 Webhook 串接 LINE,請參考 AppSheet LINE 整合教學


下一步

API 串接設定完成後,你的 AppSheet 就能和外部系統連動了。

繼續學習

實作建議

  1. 先用 Postman 測試:確認 API 可用再寫程式
  2. 做好錯誤處理:網路不穩、限流都要處理
  3. 注意安全性:API Key 別放前端、定期更換
  4. 監控使用量:避免超過限制被擋

想看更多整合應用案例,可以參考 AppSheet 範例大全


需要專業的系統整合?

API 串接涉及安全性、效能、錯誤處理等專業考量。

常見的整合需求:

  • 電商平台訂單同步
  • ERP 系統資料整合
  • 自動化工作流程設計
  • 多系統資料同步

預約架構諮詢,讓我們幫你規劃完整的整合架構。


參考資料

  1. AppSheet Documentation - REST API Reference
  2. AppSheet API v2 Guide
  3. Google Cloud - AppSheet Integration Best Practices

需要專業的雲端建議?

無論您正在評估雲平台、優化現有架構,或尋找節費方案,我們都能提供協助

預約免費諮詢

相關文章