
// context
為什麼做這個
紙本名片交出去,對方拍完照就丟了。傳一個網頁連結,對方要點開、要記得存,多一步就少一半的人會做。真正會擴散的名片只有一種:對方能直接轉給下一個人的那種。
所以我把它放進 LINE——台灣人本來就整天在用的地方。在官方帳號裡打「名片」,機器人就回一張卡;對方不用裝任何東西,也不用註冊。
做完才發現最有價值的是後面那段:那張卡本身就是一則 LINE 訊息,可以被轉傳。轉一次就多一個人看到,而我什麼都不用做。
// highlights
關鍵亮點
關鍵字各走各的,多張合成一則
每張名片可以設自己的觸發詞,打到哪張就只回哪張;打通用詞就把多張包成一則 carousel 送出,仍然只算一則額度。沒命中的訊息完全不回應——不回話比回錯話更省。
內容改在後台,不用重新部署
名片文案、主色、按鈕,連串接用的憑證都存在資料庫。後台改完即時生效,換 token 不必動到程式碼,也不必等一次部署。
每一則進來的請求都驗簽章
用 channel secret 對原始請求內容做 HMAC-SHA256 比對,對不上直接擋掉。少了這一關,任何人都能冒充平台把訊息灌進來。
別人也能做自己的名片
打「做名片」拿到一條一次性連結,填完就有自己的一張;之後打「我的名片」隨時叫出來,打「刪除名片」整筆移除。刪除做成使用者自己按得到的指令,不是寫信來拜託我。
編輯頁刻意不走平台的內嵌瀏覽器
官方的內嵌方案在未送審狀態下,只有被加進測試者名單的人打得開,一般人一律卡在權限牆外。改成一次性連結的普通網頁,整個問題直接消失。
訊息額度是設計條件,不是事後才算
免費方案一個月就那些額度,所以多張合併成一則、沒命中不回話、訪客做一張名片控制在兩則以內。這些不是優化,是一開始就得決定的事。
// results
成果
- 多張名片上線,關鍵字各自路由,通用詞合併成一則送出
- 訪客自製名片小範圍試水中(做名片/我的名片/刪除名片三個指令)
- 簽章驗證以官方測試向量驗過演算法,假簽章實測擋下
- 憑證與名片內容全部後台可改,換金鑰不用重新部署
- 刪除做成使用者自己下得了的指令,資料留一條隨時走得掉的出口
// reflection
“最花時間的不是把名片做出來,是摸清楚平台的權限邊界。轉發鈕背後那支內嵌頁,未送審前只有測試者打得開——文件沒寫在顯眼的地方,我是讓人實際點下去才知道。後來訪客版乾脆整個繞開它。與其等審核通過才敢上線,不如先找一條現在就會動的路。”