麥當勞報報抽籤機器人
講者: 土豆
日期: 2020/05/17
大綱
- 聲明
- 起因
- 麥當勞報報APP解析
- 撰寫抽籤腳本
- 參考資料
聲明
- 此報告所分享之內容僅作為學術研究與教育目的之用
- 請勿以本報告當中所分享之技術進行違法行為
起因
每次報報響起時都會被嘴一波
哪有人把報報設在半夜12點的拉!?
嚇我一跳!
這個時間!? 有沒搞錯阿??
問號
每次都要解鎖手機然後按按鈕
實在糾嘛還
而且它真的五告岔
時間回到某次資安演講
講者很自豪地說,他寫了一個麥當勞報報自動抽籤機器人
有些東西,還是自己玩玩就好了...
別人寫得出來,沒道理我寫不出來!
但怎麼寫
沒想到意外地容易
麥當勞報報APP解析
這是你的報報APP
聰明如你
應該想過一個問題
?
這個資料是誰給它的?
這是你的報報APP
其實就是
網站後端
Request
Response
JSON
API
等等,所以到底啥是API
System API: OS <-> Program
Python的sys套件: OS <-> Python
Facebook的API: Facebook <-> Program
政府開放資料API: 政府網站 <-> Program
應用程式之間可程式化的溝通介面
Application Programming Interface
Web API
This 15 wheel: Airtable <-> Wheel
URL
System API
Library
這是你的報報APP
網站後端
Request: 我要抽籤!
Response
JSON
API
URL??
封包攔截工具
封包長怎樣
URL!!
撰寫抽籤腳本
先利用Postman測試
先利用Postman測試(已領)
Python抽籤腳本
import requests
import json
from datetime import datetime
from linebot import LineBotApi
from linebot.models import TextSendMessage, ImageSendMessage
line_bot_api = LineBotApi('Your Channel access token')
data = {
"access_token": "Your App access token",
"source_info": {
"app_version": "2.2.4",
"device_time": datetime.now().strftime("%Y/%m/%d %H:%M:%S"),
"device_uuid": "Your device uuid",
"model_id": "G8232",
"os_version": "8.0.0",
"platform": "Android"
}
}
r = requests.post('https://api1.mcddailyapp.com/lottery/get_item', data=json.dumps(data))
res = r.json()
replymsg = res['rm']
if 'sticker' in res['results']:
replyimg = res['results']['sticker']['object_info']['image']['url']
elif 'coupon' in res['results']:
replyimg = res['results']['coupon']['object_info']['image']['url']
else:
replyimg = 'unkown'
line_bot_api.push_message('Your Line ID', TextSendMessage(text=replymsg))
line_bot_api.push_message('Your Line ID', ImageSendMessage(original_content_url=replyimg, preview_image_url=replyimg))
Heroku Scheduler
Heroku Add-on: Heroku Scheduler
定期執行特定指令
免費服務,但是要先綁定信用卡
成果
參考資料
這東西你找不到參考資料的拉
好啦,勉強放一些
- 自動幫你抽 麥當勞報報XD。2020/05/16檢自: https://www.dcard.tw/f/ncue/p/226501889
- line / line-bot-sdk-python。2020/05/16檢自: https://github.com/line/line-bot-sdk-python
- Heroku Scheduler。2020/05/16檢自: https://devcenter.heroku.com/articles/scheduler#dyno-hour-costs
感謝聆聽
千萬別拿去做壞事喔!
麥當勞報報自動代抽機器人
By Sam Yang
麥當勞報報自動代抽機器人
- 4,541