Workflow從進階到搬磚
《Workflow從進階到搬磚》
作者:Hhd
原貼:http://t.cn/REA8CdY持續更新中...
此教程將會對Workflow進階者有很大幫助
前排提示:
此教程對萌新不友好!
建議萌新看看《Workflow從0到1》(作者:紅V)
首先讓我們看看一個神奇的動作「Get Contents from URL」
據樓主統計(猜想),80%的規則都用到了這個動作
這個動作可以發送http請求,有五種方法可選。
分別為 Get、Post、Put、Patch和Delete
最常用的兩個方法為Get和Post,本教程著重會講這兩個方法
使用Get可以獲取伺服器上的某一文件,或某網頁的富文本
下面有兩個例子
獲取目錄「2018/02/07」內的5a7a555fcc003.jpg這張圖
獲取某一網頁富文本
可以用動作「Make HTML from Rich Text」來獲取網頁源碼
Workflow也支持自定義請求頭
放在Headers里就可以了
如下圖,定義了Cookie和User-Agent的值
講到這裡順便說說百度貼吧簽到是什麼原理吧。
百度的登錄信息保存在Cookie的BDUSS里,那隻要知道了貼吧簽到的api,再發送請求,就可以模擬簽到了
這裡的User-Agent是iPhone的User-Agent,因為手機端簽到經驗比較多
把方法改為Post後,下面多出來兩行。
點擊第一行,可以選擇Request Body,分 JSON、Form和File(文件)
Get Content from URL在Post時可以不在Headers填Content-Type,要根據Content-Type來選擇Request Body,這樣會把下面的數據轉換成對應的格式。
JSON會把數據轉成 {"foo": "bar"} 的格式
Form會把數據轉成 foo=bar&baz=biz 的格式
File用來上傳文件用
下面一個是和圖靈機器人對話的例子
一個是註冊網站會員的例子
對於其他三個方法,簡略說一下
Put和Post差不多,都可以上傳文件
Delete用來刪除資源
至於Patch我也不大清楚
下面來說說如何對獲取到的內容進行讀取
Content一般為JSON,但因為格式問題,需要經過一定的處理才可以通過Key獲取value
這時候,看字體是很重要的。
如果內容字體為宋體(如下面第一張圖),應該先在後面加Make HTML from Rich Text,這時就會變成Courier體(如下面第二張圖)
如果直接是Courier體,就在後面用Get Dictionary Value試試可不可以獲取到某個值。
如果不行,就在後面再加上Get Dictionary from Input
注意:Workflow對Array的支持不友好,無法直接將Array轉為items。
順便再來講講Get Dictionary from Input吧。這個動作有一個神奇的功能,就是對Unicode編碼過的文本解碼。
下面的JSON的value都經過了編碼,但是加了Get Dictionary from Input後全部解碼了
這樣就是一個簡單的Unicode解碼器
它還可以把 foo=bar&baz=biz 的格式轉為JSON格式
現在再來說說如何將Array變成items
在Dictionary動作中,是可以添加Array的,但這裡的Array是某個鍵的值
所以只要把Array放到Dictionary里就可以了
怕很多人看不懂,我準備出一個專題【用Workflow發送Thor抓到的請求】
Thor是一款iOS抓包工具,可以去App Store購買下載,支持一下dake
我這裡抓了搜狗顏文字網站,現在要找出獲取顏文字的api
因為返回數據通常為JSON,所以先在過濾器里將數據類型過濾為文本
過濾完後會發現請求數少了很多,接下來在這些請求里篩選
api通常是ajax編寫,所以要看看鏈接里包不包含「ajax」「php」「aspx」的字元。
有些api是公開的,所以再看看哪個鏈接包含「api」字元。
經過上面兩步的篩選,數目又少了很多,接下來就是查看一個個請求的返回數據里有沒有想要的內容(比如我抓的是顏文字,那就看看哪個請求返回了很多顏文字)
經過這些篩選,我已經確定了一個介面
然後進入概覽,找到HTTP方式,這裡寫的是什麼動作里就怎麼填
如果方式為POST,就來到請求頭,找到Content-Type。
如果Content-Type為application/json,RequestBody就選擇JSON;
如果Content-Type為application/x-www-form-urlencoded,RequestBody就選擇Form
來到消息體查看數據,按照格式在Workflow輸入數據
最後運行規則,就有結果啦
持續更新中...
![](https://pic.pimg.tw/zzuyanan/1488615166-1259157397.png)
![](https://pic.pimg.tw/zzuyanan/1482887990-2595557020.jpg)
TAG:小五科技 |