自動建立營收拉取 + 報表 + 機台管理,含完整 SOP
v3 合併版此 Skill 用於自動建立「產品營收」agent 團隊。將此檔案交給你的 PM agent,它會自動建立 3 個專職 agent 並完成配置。
v3 合併:OAuth、格式轉換、樞紐 visibleValues + Step 0 保存上月、Step 6.5 R欄、機台 IP 命名規則、同步到報表
| 變數 | 說明 | 範例 |
|---|---|---|
API_URL | 後台營收 API 位址 | http://192.168.5.18:1688/rd1_backendweb/api/income/ |
SERVICE_ACCOUNT_PATH | Google SA JSON 金鑰路徑 | /path/to/service-account.json |
SERVICE_ACCOUNT_EMAIL | Service Account email | bacon-812@xxx.iam.gserviceaccount.com |
OAUTH_CLIENT_SECRET_PATH | OAuth Client Secret JSON | /path/to/oauth_client_secret.json |
OAUTH_CREDENTIALS_PATH | OAuth Token 存放路徑 | /path/to/oauth_credentials.json |
REVENUE_SHEET_ID | 最近一個月的營收報表 ID | 12MTWgWfVb1bRGWwE9IJDYd0l2kbDUxjxPBAr-tHyu6Q |
MACHINE_TABLE_ID | 機台 ID 對照表 ID | 1oNr7iP5wXFUuinNfMrhaFRN2OVtmJy6ZGrZv6rDwEps |
PRODUCTS | 產品代碼 | A8DX, SR4, A9PLUS, A8PLUS |
PRODUCT_SHEET_MAP | 產品→機台對照表分頁 | A8DX→閃電摩托, SR4→極速摩托4, A9PLUS→狂野飆車, A8PLUS→A8+ |
http://localhost/?code=XXXXcurl -s -X POST https://oauth2.googleapis.com/token \
-d "refresh_token={REFRESH_TOKEN}" \
-d "client_id={CLIENT_ID}" \
-d "client_secret={CLIENT_SECRET}" \
-d "grant_type=refresh_token"
| 角色 | 負責步驟 | 說明 |
|---|---|---|
| PM | Step 2 + Step 10 | OAuth 建副本、分享給 SA、彙整報告 |
| 營收拉取 | Step 1 | API 拉 CSV |
| 營收報表 | Step 0 + 3~7 | 報表全部操作 |
| 機台管理 | Step 8~9 | 新機台同步 + 同步到報表 |
GET {API_URL}?project={CODE}&start_time={YYYYMMDD}&end_time={YYYYMMDD}&locale={CN/FA}&format=csv
| 規則 | 說明 |
|---|---|
| locale | 必須大寫(CN, FA) |
| timeout | 120 秒 |
| 驗證 | 筆數>0、header 存在 |
| 空白回傳 | 停下回報(參數錯誤) |
| 存檔 | /tmp/{project}_{YYYYMM}_{locale}.csv |
POST /drive/v3/files/{前月ID}/copy → 取得新 Sheet IDPOST /drive/v3/files/{新ID}/permissions → writer 權限給 SA email| 欄位類型 | CSV 格式 | 轉換方式 |
|---|---|---|
| 時間(長) | HH:MM:SS | (H×3600+M×60+S)/86400 |
| 時間(短) | HH:MM | (H×3600+M×60)/86400 |
| 百分比 | XX.XX% | 去掉 % 除以 100 |
| 日期 | YYYY-MM-DD | 轉為 Excel 序號 |
| 數值 | 整數/小數 | 直接寫入 |
| 項目 | 條件 |
|---|---|
| 筆數 | CSV 筆數 = Sheets 行數 |
| 取樣 | 首/中/末三行比對一致 |
| 時間欄位 | 非 0(平均遊戲時間/InGame) |
| N/A | 所有 N/A = 0 |
| 空白店名 | 樞紐無空白店名 |
| Source range | endRowIndex 正確 |
| 總表 G 欄 | 不為 0 |
| R 欄 | 當月已填入 |
| 情境 | 規則 |
|---|---|
| 不同 IP | = 不同店家(即使店名一樣) |
| 未設定 + 同地區不同 IP | 加序號:未設定(地區_1)、未設定(地區_2) |
| 有店名 + 不同 IP 不同地區 | 加地區:XX(朝阳店)、XX(廊坊店) |
| 有店名 + 不同 IP 同地區 | 加序號:XX_1、XX_2 |
| 同 IP | 地區必須一致 |
關鍵字:{產品名} 產品營收 / {產品名} 營收
確認流程:
1. 確認要執行?
2. 前月份營收試算表連結?
3. 營收月份?(例如 202608)
4. 語系?(CN / FA / 都要)
| 限制 | 因應 |
|---|---|
| IMPORTRANGE 授權 | 新副本需使用者手動點「允許存取」 |
| SA Drive 配額 = 0 | 用 OAuth 建副本 |
| 樞紐日期格式 | 用序號 + visibleValues 折衷 |
| Agent 超時 | 大任務分段執行 |
| urn:ietf:wg:oauth:2.0:oob 已停用 | 用 http://localhost |
Q:API 回傳空白?
確認 project code(A9PLUS 不是 A9+)、locale 大寫。
Q:Drive 空間不足?
SA 無法建檔,用 OAuth 繞過。
Q:樞紐顯示空白店名?
檢查同步機台ID 中該機台地區是否與同 IP 一致。
Q:N/A 怎麼修?
該機台不在同步表中,從 CSV 取得資訊新增。
Q:總表 #NUM! 或 #DIV/0!?
樞紐無資料(日期篩選範圍不對或被過濾)。
Q:R 欄填入後圖表沒更新?
確認填的是數值非字串。