2011年6月12日 星期日

[野人獻曝] 淺談oEmbed機制

你或許會很好奇,
為啥我在plurk上貼一個youtube連結後,
plurk會把他轉換成其他人只要一點開就能播放且有縮圖的連結;
或者是你貼了一個flickr連結後,
plurk會幫你轉換成那張圖片,並且設定好連結。 

這些(大概)都是透過oEmbed這個機制所弄出來的。
(因為我又沒問plurk的人是怎麼弄的w) 

那什麼是oEmbed呢,
詳情請翻翻看維基百科上的說明。
如果不想看的話,
這裡就簡單一點說:「oEmbed是個開放格式,可以讓你知道想要的東西資源在哪裡該如何使用blahblah」。
至於詳細內容在上面所提及的oEmbed官網大概就提的差不多了,
所以請務必看看(不然我也沒打算再說更多了)。 

所以說該怎麼實作勒?

就以實作Youtube的以oEmbed取資源為例,
首先你必須要知道Youtube的oEmbed資源在那個Uri,
基本上你可以在Youtube這篇部落格文章找到,
不過我可以先貼出來參考:http://www.youtube.com/oembed?url={youtube影片網址}&format=json 
當你組出這段網址後,
你可以用你上手的語言去作一個http get的動作,
如果順利的話,
你的程式應該會收到一段json,
至少會有type、version、title等元素,
請參照oEmbed官網中所提及的response type, 
去取用你所需要的項目,
就算是大功告成了。

行文至此應該會有人要問:「那我怎麼知道哪些網站有支援這個機制?」
基本上幾個比較大手的網站都已經實做這種格式了,
你可以在oEmbed的官網首頁的最後部份看到那些網站的清單。

當然oEmbed還有一個Discovery機制,
也可以讓你知道這個網站是否支援,
只是因為本期稿擠(實際上是天氣好熱不想多打字),
所以改天有機會再來開新文說明好了。 

張貼留言