解决方案
麦当劳的软冰淇淋机出了名地容易故障,而在 2020 年,顾客除非亲自开车到店,否则无从得知某台机器是否已经坏了。那年 10 月,常驻德国的软件工程师拉希克·扎希德推出了 McBroken,这是一张地图,按冰淇淋机是否正常工作把美国每一家麦当劳标成绿色或红色。他的方法是:逆向工程该连锁店的内部点餐 API,并尝试在每一家门店往购物车里添加一份麦旋风。如果应用接受该商品,说明机器正常;如果拒绝,说明机器故障。
这种探测需要调校。每分钟轮询一次会让应用把他判定为机器人并切断访问;每 30 分钟添加一份麦旋风既能保持地图实时更新,又能通过其识别人类行为的标准。扎希德先从德国的麦当劳门店入手,骑车往返于柏林各家门店之间,把 McBroken 的数据与现实情况对照,之后才扩展到美国。它呈现出的图景很直白:截至撰稿时,全美略低于 10% 的机器故障,纽约市接近 24%,西雅图约 20%,华盛顿特区都会区大约 14%。
更早的一次尝试是雷娜·麦克劳德 2017 年开发的应用,起因是她想吃麦旋风却没买到,该应用依赖众包报告,效果完全取决于用户;而直接查询点餐数据源让 McBroken 的数据更准确、更及时。麦当劳并未对抗这个项目——传播与政府关系高管大卫·托瓦尔公开感谢了扎希德,称他是真正的粉丝,并承认该连锁店在甜点上还有“改进空间”——据 Business Insider 报道,加盟商也在自行寻找解决办法。
它取得了什么
不要依赖众包的故障报告——去探测点餐 API。如果应用允许你把冰淇淋加入购物车,机器就是正常的;如果拒绝,就是坏了。
为什么有效
点餐应用实际上就是一个机器状态 API:它的购物车逻辑已经知道哪些门店无法供应冰淇淋。
一个虚拟购物车不花任何成本,而且始终是最新的,不像众包报告会随用户关注度的下降而失效。
30 分钟的节奏是关键——快到足以保持实时,慢到足以让应用觉得像人类。
这张地图是在羞辱而非指控:它只是陈述点餐应用对每家门店已经暗示的内容。
可以借鉴什么
当一家公司不愿公布状态数据时,它自己的交易接口仍会泄露这些数据。一个精心选择的探测,只要在东西坏掉时恰好失败,就胜过一大群人工报告者。
后续
麦当劳从未对这个机器人采取行动:大卫·托瓦尔公开称赞了这一努力(“只有真正的麦当劳粉丝才会做到这种地步”),并承认公司在让更多顾客满意甜点方面还有改进空间。据 Business Insider 同月报道,加盟商正自行处理此事,寻求让机器更常保持正常运转的解决方案。
从这里,追溯依据
参考来源
- Bot orders $18,752 of McSundaes every 30 min. to find if machines are working Ars Technica · arstechnica.com ·