bni-121
Installation
SKILL.md
BNI 121 & 引薦自動填報
透過 API 直接批次提交一對一 (121) 會面記錄與引薦記錄,不需要操作 UI。
執行步驟
Step 1:收集資訊
一次向用戶詢問以下資訊:
- BNI Connect 帳號密碼(Email & 密碼)
- 121 名單:每行一筆,只需姓名
- 會面地點
- 會面日期(預設今天,格式 YYYY-MM-DD)
- 引薦名單(可選):每行格式
引薦給誰 | 被引薦人姓名
Step 2:登入取得 JWT Token
用 agent-browser 登入,從 localStorage 取出 JWT token。
⚠️ 登入陷阱:登入後 get url 可能仍顯示 /login/,這是 React SPA 的行為,並不代表失敗。以 localStorage 中是否有 token 作為成功依據。
agent-browser --session-name bni open "https://www.bniconnectglobal.com/login/"
agent-browser --session-name bni wait --load networkidle
# 取得 ref(每次重新登入 ref 可能不同,必須先 snapshot 再使用)
agent-browser --session-name bni snapshot -i
# 通常:使用者名稱=e11, 密碼=e12, 登入按鈕=e8
agent-browser --session-name bni fill e11 "<email>"
agent-browser --session-name bni fill e12 "<password>"
agent-browser --session-name bni click e8
agent-browser --session-name bni wait --load networkidle
agent-browser --session-name bni wait 2000 # 等 localStorage 寫入完成
# 取出 JWT(不用 get url 判斷,直接讀 token)
TOKEN=$(agent-browser --session-name bni eval "JSON.parse(localStorage.getItem('bniconnect:portal:session')).access_token" | tr -d '"')
echo "Token length: ${#TOKEN}" # 應為 700+ 字元
Step 3:批次提交 121
使用技能目錄下的 scripts/submit-121.sh,透過環境變數傳入參數,姓名作為位置參數:
SKILL_DIR="/Users/kevinshu/Projects/bni/.claude/skills/bni-121"
TOKEN="<jwt>" DATE="2026-04-29" LOCATION="東京" COMMENTS="商務交流" \
bash "$SKILL_DIR/scripts/submit-121.sh" 周澐 張家綺 王大明
⚠️ 姓名顛倒:BNI API 的 firstName 存中文「姓」,lastName 存中文「名」(與英文慣例相反)。腳本已處理。
⚠️ 用 curl,不用 Python urllib:Python urllib 可能遇到 403,腳本使用 /usr/bin/curl。
Step 4:批次提交引薦(可選)
使用技能目錄下的 scripts/submit-referral.sh,每個引薦以 接收者|被引薦人 格式傳入:
SKILL_DIR="/Users/kevinshu/Projects/bni/.claude/skills/bni-121"
TOKEN="<jwt>" bash "$SKILL_DIR/scripts/submit-referral.sh" \
"江大大|攤位對面活動廠商" \
"陳蕃薯|王小明"
⚠️ 預設為外分會(跨分會):121 與引薦均預設以外分會模式提交(referralType: OUTSIDE)。
Step 5:完成回報
向用戶報告 121 與引薦各自的成功筆數,以及任何失敗的姓名與原因。
API 參考
| 功能 | 方法 | 路徑 |
|---|---|---|
| 本分會成員清單 | GET | /member-api/slips/available-members-list |
| 跨分會搜尋 | POST | /member-api/cross-chapter-search |
| 提交 121 | PUT | /member-api/slips/one2one |
| 提交引薦 | PUT | /member-api/slips/referral |
- Base URL:
https://api.bniconnectglobal.com - Auth:
Authorization: Bearer <JWT> - dateMet 格式:
YYYY-MM-DDTHH:mm:ss(時間固定填00:00:00) - comments:談話主題欄位
- HTTP 428:重複記錄偵測,重送時 header 改為
bypassCheck: true(submit-121.sh 已處理) - Token 有效期:約 2 小時(
expires_in: 7199) - 引薦預設值:
referralType: OUTSIDE、temperature: 5、cardGiven: true