解決方案
麥當勞的霜淇淋機惡名昭彰地容易故障,而在 2020 年,顧客除非親自開車到店,否則無從得知機器是否故障。同年 10 月,駐德國的軟體工程師 Rashiq Zahid 推出了 McBroken,這是一張地圖,依冰淇淋機是否正常運作,將美國每一家麥當勞標為綠色或紅色。他的方法如下:逆向工程該連鎖店的內部點餐 API,並嘗試在每一家門市的購物車中加入一份麥旋風。若應用程式接受該品項,代表機器正常;若拒絕,則代表故障。
這項探測需要調整。每分鐘輪詢一次會讓應用程式將他判定為機器人並切斷存取權限;每 30 分鐘加入一份麥旋風,既能讓地圖保持最新,又能通過其辨識人類的標準。Zahid 先從德國的麥當勞門市著手,騎腳踏車往返柏林各家門市,將 McBroken 的數據與實際情況核對,之後才擴展到美國。它呈現的景況相當直白:撰稿時全美有略低於 10% 的機器故障,紐約市將近 24%,西雅圖約 20%,華盛頓特區一帶則約 14%。
更早的一次嘗試,是 Raina McLeod 在 2017 年因一次未能如願的麥旋風嘴饞而打造的應用程式,它仰賴群眾外包的回報,成效僅取決於使用者;直接查詢點餐來源,讓 McBroken 的數據更準確也更即時。麥當勞並未打壓這個專案——傳播與政府關係主管 David Tovar 公開感謝 Zahid,稱他是真正的粉絲,並坦承該連鎖店在甜點方面仍有「改善空間」——而《Business Insider》報導,加盟店主們也正自行尋找解決方案。
它達成了什麼
不要依賴群眾外包的故障回報——直接探測點餐 API。若應用程式允許你將冰淇淋加入購物車,機器就是正常的;若拒絕,就是故障。
為何奏效
點餐應用程式實際上就是一個機器狀態 API:其購物車邏輯早已知道哪些門市無法供應冰淇淋。
一份虛擬購物車不花任何成本,而且永遠是最新的,不像群眾外包的回報會隨使用者關注度而衰減。
30 分鐘的頻率是關鍵——快到足以保持最新,慢到足以讓應用程式認為是人類。
這張地圖羞辱而不指控:它只是陳述點餐應用程式對每家門市早已暗示的內容。
可應用的啟示
當一家公司不願公布狀態數據時,它自己的交易介面仍會洩漏這些資訊。一個精心挑選、恰好在該事物故障時失敗的探測,勝過一大群人類回報者。
後續發展
麥當勞從未對這個機器人採取行動:David Tovar 公開讚揚這項努力(「只有真正的麥當勞粉絲才會做到這種地步」),並承認公司在滿足更多顧客的甜點需求方面仍有改善空間。同月《Business Insider》報導,加盟店主們正自行著手處理此事,尋求讓機器更常保持運作的解決方案。
追溯依據
參考來源
- Bot orders $18,752 of McSundaes every 30 min. to find if machines are working Ars Technica · arstechnica.com ·