於是大家就討論想要寫一個 web app 來解決這個問題。基本上的概念就是希望在發言的時候如果加了 #h4 時,就會把這個發言丟到 web app 上,條件是至少要在 twitter 與 plurk 都可以使用 (Facebook 會比較麻煩,所以就先跳過了)。然後我們就在 David 的筆電上蓋看到 addicted 這個字,所以這個專案就叫做 h4addicted 啦。
今天我研究了一下,發現這個服務很容易就可以使用 Yahoo Pipes 兜出來!基於懶惰的原則,我就沒有自己去寫程式了 :P
Yahoo Pipe 基本上是一個可以從網路上撈資料進行後處理的 web app。所以我們要做的就是搜集大家的 feed,對各個 service 做一些後處理後產生新的 RSS/JSON 就完成了。你可以到下面這個網址:
http://pipes.yahoo.com/yurenju/h4addicted
功能其實是非常簡易的,原本製作也很簡單,只要把大家的 RSS feed 拉進來就結束了。不過事情沒有這麼簡單!我們把 twitter, plurk, facebook (對,後來 David 又透過 JSON 撈到了 Facebook 的資料,但是前提是你的 post 是公開的。)都弄出來之後發現有幾個問題要解決:
- Plurk 的 RSS link 欄位填寫的是相對網址,需要對字串作後處理
- Facebook 也有相同的問題,因為是從 JSON 轉過來的,所以也沒有 link 欄位。
- Facebook 因為根本沒有與 link 對應的欄位,所以要從 post id 那邊分析後取得 post id,然後再跟 user id 合併後產生 link 欄位
- Facebook 的 message 欄位沒有 author,所以要額外把 name 加入 message 欄位
所以比想象中的複雜一點,不過還是搞定了 XD
首先看概觀
Plurk 的部分其實就是把 link 拿出來加上 http://www.plurk.com/ 的前綴後再塞回去就完成了。右邊的 facebook 我則是把它獨立成另外一個模組處理。
- Rename 模組負責把 JSON 的格式改成與 RSS 類似,讓訊息可以正確的的解譯出來。
- Loop - String Builder 的部分是為了作讓 user name 加在 message 前面,才知道是誰的發言。
- Loop - String Regex 的部分則是用來把 item.id 裡面類似 724235041_10150262195320042 的結構取出後者(也就是 post-id)並且儲存
- 取出 post-id 後再利用一次 String Builder 把 facebook 前綴、 user-id 與 post-id 連接在一起,就完成了。
Yahoo Pipes 真是非常方便的工具,利用它其實可以做到非常多事情了 :)
也歡迎 clone 拿去使用。
沒有留言 :
張貼留言