當前位置:
首頁 > 科技 > Workflow從進階到搬磚

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輸入數據

最後運行規則,就有結果啦

持續更新中...


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 小五科技 的精彩文章:

視窗鎖屏?夜景
iPhoneX 又曝新問題

TAG:小五科技 |