從簡單介面呼叫到複雜系統整合,逐步提升開發能力
7天掌握API開發與系統整合核心技能
7天掌握API開發與系統整合,實現複雜業務定製開發
能獨立完成API呼叫、資料同步、系統整合、複雜業務定製開發等開發任務
預計學習時間:4-6小時
預計學習時間:6-8小時
💡 技巧: 使用Postman Collection儲存常用介面,提升除錯效率
預計學習時間:6-8小時
程式碼示例: Webhook程式碼示例 | 資料同步方案
預計學習時間:4-6小時
🏆 推薦練習: 搭建一個完整的整合方案(簡道雲↔ERP系統資料同步)
基礎文件
開放平臺整體架構與使用說明
→ 檢視開放平臺完整API參考
所有API介面詳細說明與示例
→ 檢視API文件鑑權配置
API KEY生成與鑑權配置方法
→ 學習鑑權配置除錯工具
線上除錯臺使用方法與技巧
→ 使用除錯臺錯誤處理
API錯誤碼詳細說明與解決方法
→ 檢視錯誤碼所有開發文件
開放平臺所有文件與資源彙總
→ 訪問開放平臺程式碼示例
Python/Java/Go API呼叫示例程式碼
→ 檢視程式碼示例事件監聽
Webhook配置與事件監聽完整教程
→ 學習Webhook高階功能
聚合表、智慧助手Pro等高階功能API
→ 檢視高階API三個常用場景的程式碼示例,複製即用
import requests
import json
# 配置資訊
API_KEY = "your_api_key_here" # 替換為你的API KEY
APP_ID = "your_app_id" # 應用ID
ENTRY_ID = "your_entry_id" # 表單ID
# API端點
url = f"https://www.jiandaoyun.com/api/v1/app/{APP_ID}/entry/{ENTRY_ID}/create"
# 請求頭(Bearer Token鑑權)
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
# 要提交的資料
payload = {
"data": {
"_widget_1234567890": {"客戶名稱": "阿里巴巴"}, # 單行文字
"_widget_1234567891": {"電話": "13800138000"}, # 電話欄位
"_widget_1234567892": {"地址": "杭州市餘杭區"} # 地址
}
}
# 傳送請求
response = requests.post(url, headers=headers, json=payload)
# 處理響應
if response.status_code == 200:
result = response.json()
print("✅ 資料建立成功!")
print(f"資料 ID: {result['data']['_id']}")
else:
print(f"❌ 錯誤: {response.status_code} - {response.text}")
🔑 鑑權方式
Bearer Token(在Header中傳遞API KEY)
📊 欄位格式
_widget_ID: {"欄位名": "值"}
✅ 返回結果
200 OK + 資料ID
const axios = require('axios');
// 配置資訊
const API_KEY = 'your_api_key_here'; // 替換為你的API KEY
const APP_ID = 'your_app_id'; // 應用ID
const ENTRY_ID = 'your_entry_id'; // 表單ID
// API端點
const url = `https://www.jiandaoyun.com/api/v1/app/${APP_ID}/entry/${ENTRY_ID}/retrieve`;
// 請求頭
const headers = {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
};
// 查詢條件:查詢所有"審批狀態"為"待審批"的資料
const payload = {
"filter": {
"rel": "and", // 條件關係:and/or
"cond": [
{
"field": "_widget_1234567893", // 審批狀態欄位ID
"method": "eq", // eq(等於), ne(不等於), lt(小於), gt(大於)
"value": "待審批"
}
]
},
"limit": 100, // 每次返回最多100條
"fields": [ // 要返回的欄位
"_widget_1234567890", // 客戶名稱
"_widget_1234567893" // 審批狀態
]
};
// 傳送請求
axios.post(url, payload, { headers })
.then(response => {
console.log('✅ 查詢成功!');
console.log(`找到 ${response.data.data.length} 條資料`);
response.data.data.forEach((item, index) => {
console.log(`${index + 1}. ${item._widget_1234567890} - ${item._widget_1234567893}`);
});
})
.catch(error => {
console.error('❌ 錯誤:', error.response ? error.response.data : error.message);
});
🔍 查詢條件
filter.cond陣列(支援and/or)
📦 分頁查詢
limit + skip實現分頁
🎯 欄位過濾
fields指定返回欄位
from flask import Flask, request, jsonify
import hmac
import hashlib
import json
app = Flask(__name__)
# Webhook簽名金鑰(在簡道雲後臺配置)
WEBHOOK_SECRET = "your_webhook_secret"
@app.route('/webhook/jiandaoyun', methods=['POST'])
def handle_webhook():
# 1. 驗證簽名(重要!)
signature = request.headers.get('X-JDY-Signature')
timestamp = request.headers.get('X-JDY-Timestamp')
body = request.get_data(as_text=True)
# 計算簽名
sign_str = f"{timestamp}.{body}"
expected_signature = hmac.new(
WEBHOOK_SECRET.encode(),
sign_str.encode(),
hashlib.sha256
).hexdigest()
if signature != expected_signature:
return jsonify({"error": "Invalid signature"}), 403
# 2. 解析事件資料
event_data = json.loads(body)
event_type = event_data.get('op') # data_create / data_update / flow_approve
app_id = event_data.get('appId')
entry_id = event_data.get('entryId')
data = event_data.get('data') # 表單資料
print(f"✅ 收到Webhook事件: {event_type}")
print(f"表單ID: {entry_id}")
print(f"資料: {data}")
# 3. 根據事件型別處理
if event_type == 'data_create':
# 處理新資料建立事件
customer_name = data.get('_widget_1234567890', {})
print(f"新客戶: {customer_name}")
# TODO: 同步到你的CRM系統
elif event_type == 'flow_approve':
# 處理審批透過事件
approve_result = event_data.get('result') # agree/reject
print(f"審批結果: {approve_result}")
# TODO: 通知系統審批結果
# 4. 返回200確認收到(必須!)
return jsonify({"status": "success"}), 200
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
🔐 簽名驗證
HMAC-SHA256防偽造
📡 事件型別
data_create/update/delete, flow_approve
✅ 響應要求
必須返回200狀態碼
1️⃣ 獲取API KEY
2️⃣ 獲取欄位ID
3️⃣ 除錯建議
4️⃣ 安全建議
© 2015-2035 上海思揚資訊科技有限公司 | 滬ICP備16007722號-8