GOOGLE SHEETS API
把行情帶進你的試算表。
一次查詢最多 100 種幣。網頁關閉後,API 仍可運作。
1. 部署資料服務
先將專案部署至 Cloudflare Pages。正式 API 根網址為 https://zeroboss2006-crypto.pages.dev;Google Sheets 無法連接你電腦上的 localhost。
Binance 現價與 24h 漲跌免金鑰。CoinGecko 市值及年漲跌需先設定共用 D1 快取(MARKET_DB),再在 Cloudflare 設定 Secret COINGECKO_DEMO_API_KEY。
2. 安裝試算表函數
下載 GoogleSheets.gs ↗,把全部內容貼到 Google Sheets「擴充功能 → Apps Script」,儲存後重新開啟試算表。若已有同名函數,請用這份取代;已有 onOpen 時需合併選單程式。
3. 輸入公式
免金鑰的 Binance USDT 現價:
=BINANCE_API("BTC", "price")
=BINANCE_API("BTCUSDT", "changepct")
CoinGecko USD 市值、年漲跌與名稱:
=CRYPTO_API("BTC", "marketcap")
=CRYPTO_API("BTC", "1y_changepct")
=NAME("BTC")
在 A2:A101 放入幣種代號,一次輸出 5 個欄位(名稱、現價、24h、1 年、市值):
=CRYPTO_TABLE(A2:A101, "name,price,changepct,1y_changepct,marketcap")
或批次抓取 Binance 現價、24h 漲跌:
=CRYPTO_TABLE(A2:A101, "price,changepct", 0, "binance")
請留空右方及下方的輸出範圍。漲跌數值回傳比例,例如 0.025,將該欄設為百分比便會顯示 2.5%。
4. 自動更新
從試算表「CRYPTO 行情」選單執行「建立/更新重算時間」,首次執行需授權。接著讓公式參照建立的 Crypto設定!B1:
=CRYPTO_TABLE(A2:A101, "name,price,changepct,1y_changepct,marketcap", 'Crypto設定'!$B$1)
=BINANCE_API("BTC", "price", 'Crypto設定'!$B$1)
再選「啟用每 15 分鐘重算」。重新整理網頁、快取到期都不會單獨強制 Sheets 公式重算;不要傳入 NOW() 或 RAND()。選單會寫入 Crypto設定 工作表 A1:B1,請保留此區域。
HTTP API
以下連結可檢查目前環境的 JSON 回應:
GET /api/quotes?source=binance&symbols=BTC,ETH GET /api/quotes?source=coingecko&symbols=bitcoin,ethereum
回應包含 source、fetched_at、cache_seconds、percentage_unit 與依請求順序排列的 data。每列包含 price、changepct、1y_changepct、marketcap、marketcap_changepct、currency、updated_at。查無幣種會在該列回傳 error,缺少欄位為 null。
來源與更新頻率
Binance API 是伺服器端 REST 快照,快取 60 秒,幣價以 USDT 計價,支援有成交紀錄的 USDT 交易對。它與看板中的瀏覽器 WebSocket 分開運作,不是秒級推播 API。
CoinGecko 目前提供市值前 100 種幣,以 USD 計價,快取 15 分鐘;同代號請改傳 CoinGecko ID。Binance 不提供這裡的市值與年漲跌欄位,不會自動混用另一個來源。
CoinGecko 資料由全站共用,每 15 分鐘時段最多更新 1 次;重新整理不會額外消耗該時段的 Demo 請求。來源故障時會標示 stale 與 warning,舊快照最多保留 24 小時。Binance 與 Apps Script 另有快取。批次公式比逐格呼叫更合適。