2007-03-10

Blogger 資料來源用法與整理 (Site Feed Usage)

在 Blogger 介紹過的眾多 Hack 之中,詢問度最高、用的人最多的就是「最新回應」或「最新文章」,當然,我之前的文章也介紹過,程式碼都一樣,稍稍改一下 Feed 的來源就可以了。包含上一篇顯示相關文章的 Hack 也有提到,Blogger 提供很多種的 Feed 來源,上一篇用的是特定標籤的 Feed,而「最新回應」用的是 Comment 的 Feed,「最新文章」當然就是用整個 Blog 最基本的 Feed,最後一類比較冷門,叫做 Pre-post Comment,Blogger 有「意見管理」的功能,也就是「留言要經版主審核才能刊出」,如果有啟用這個功能,這個 Feed 就可以列出還沒刊出的留言。這四類的 Feed URL 整理如下:

新文章的 Feed(以下幾種都有一樣的效果):

  • http://你的Blog網址/feeds/posts/類型
  • http://你的Blog網址/rss.xml
  • http://你的Blog網址/atom.xml
  • http://beta.blogger.com/feeds/你的BlogID/posts/類型
最新回應留言的 Feed:
  • http://你的Blog網址/feeds/comments/類型
  • http://beta.blogger.com/feeds/你的BlogID/comments/類型
特定分類標籤的 Feed:
  • http://你的Blog網址/feeds/posts/類型/-/標籤
  • http://beta.blogger.com/feeds/你的BlogID/posts/類型/-/標籤
未審核的回應留言的 Feed:
  • http://你的Blog網址/feeds/特定文章ID/comments/類型
  • http://beta.blogger.com/feeds/你的BlogID/特定文章ID/comments/類型

以上有些屬性需要自己調整,說明如下:

  1. http://你的Blog網址:如果沒有用 Customized Domain Name,通常應該是 http://名稱.blogspot.com。這裡有個小技巧,如果在樣版裡面常常會用到「自己」的網址當作變數或 Feed URL,可以直接省略,也就是說 "http://你的Blog網址/" 等同於 "/",絕對路徑可以用相對路徑來表示。
  2. 類型:指的是 Feed 內容的類型,可以填的值有 default, full 和 summary,前兩個是提供完整的 Feed 內容,summary 則是僅提供部分(應該會比較快)。
  3. 你的BlogID:注意一下你的網址列,尤其在你登入編輯的時候看得到,找 blogID= 後面那個字串就是。這裡有官方說明
  4. 特定文章ID:在閱讀特定文章,要留言回應的時候注意一下網址列也可以看到,找 PostID= 後面那個字串就是。
  5. 標籤:你想要看的分類標籤名稱(大小寫有分別喔)。如果想同時看多個標籤的 Feed,也可以用 "標籤1/標籤2" 來取代(代表的是,同時有這兩個標籤的所有文章)。注意,如果有標籤名稱中間有空白,在整個網址一定要加雙引號,手動敲網址的話也可用 %20 或是 + 來替代。

以上是所有 Blogger 提供的 Feed URL,這些 Feed 網址還有一些參數可以下喔!基本常識:如果要在網址後面加參數,第一個參數和網址字串中間要加一個 ? 當連字號,如果後面不止一個參數,參數之間要用 & 當作連接符號。下面先介紹一些參數,連接的特殊符號在範例裡再看:

  1. alt=格式:可以把 Feed 內容的格式改成 RSS 2.0 (rss),預設是 ATOM (atom) 的格式,也支援 JOSN (json-in-script)。
  2. start-index=N:設定 Feed 內容的啟始文章標號,如果 Feed 裡面有十篇,index N 設成五的話,那就只會顯示從第五篇開始後面的內容。
  3. max-results=N:設定 Feed 內容最大的數量。值好像沒有上限(可以搞個 50 或 100 的,相對地文章多顯示會比較慢),預設沒有這個參數的話,內容是 20 篇。
  4. orderby=排序方法:設定 Feed 內容依照發文時間 (published) 排序,或是「更新時間」(updated) 來排序,如果用 published 這個參數不管舊文章怎麼更新,也不會干擾你的 RSS Feed 內容。

好,怎麼混用以上的 Feed URL 加上屬性和參數呢?以下有幾個範例:

  1. 範例一,顯示我的最新文章,強制用 RSS2.0、上限十篇完整內容: http://abintech.blogspot.com/feeds/posts/full?alt=rss&max-results=10
  2. 範例二,顯示我的最新回應,顯示從第五篇開始,總共顯示五篇部分的內容就好: http://abintech.blogspot.com/feeds/comments/summary?start-index=5&max-results=5
  3. 範例三,顯示同時有標籤 BLOGGER HACK 和 CSS 的文章: http://abintech.blogspot.com/feeds/posts/summary/-/CSS/BLOGGER+HACK

有很多的 Hack 都是利用這些 Feed URL 提供的內容來做變化,只要善用 Javascript 或是 JSON 和範例,相信可以做出各式各樣符合自己需求的 Hack,搭配 CSS 語法和 Blogger 的樣版彈性,自己的 Blog 要打造成什麼樣子都沒問題!

參考文章:
Blogger Beta Feeds
修正RSS Feed 依發文時間排序

回應: 13

張騎米 提到...

您好:
我做了一個網站,想用BLOGGER來當作資料維護的工具,但不想用BLOGGER當作介面,看了您的文章之後,解決了我大部分的問題,但是目前還有一個「搜尋文章」的問題,要如何取得在BLOGGER上方搜尋列結果的XML呢?

Abin 提到...

To 張輯米:
我不懂什麼是「BLOGGER上方搜尋列結果的XML」,如果你是想做站內搜尋的功能,請參考以下兩篇文章:增加站內的全文搜尋 & 內嵌搜尋引擎來做 Blog 的全文搜尋

張騎米 提到...

To: abin

不好意思,沒有解釋清楚
因為我想用PHP作一個網站,背後的資料則是用BLOGGER,所以不希望使用者的連結會連到BLOGGER。

目前依照您的文章可以做出站內的全文搜尋,但是我想用PHP把搜尋結果擷取出來做處理之後再輸出,不知道BLOGGER有沒有提供搜尋結果的XML?

另外,BLOGGER有沒有全部標籤列表的XML輸出?我也想用PHP來作自訂的標籤雲。

非常感謝

吉米

Abin 提到...

TO 張喆米:
這部份我沒有碰過,建議你直接參閱 Google Data API,裡面也有部份是關於 Blogger Data、用 PHP 呼叫的介紹,至於像你說做標籤列表、搜尋輸出的 XML,只要 Google 有提供相關函式,應該都會有 XML 的 Output 才是。

張騎米 提到...

非常感謝!

張騎米 提到...

又來麻煩您,找了很久找不到把列出結果倒序的參數。只能找到 orderby=published或 updated,還是說實際上沒有這個參數?

Abin 提到...

To 張輯米:
我查看了 Google Base API 裡面的描述,我有看到一個新的參數,叫做 sortorder,所以照理來說,應該可以用 sortorder=ascending 或是 sortorder=descending 來更改 Feed 查詢的顯示順序(請看這篇文章的說明),不過很不幸的,在我實際測試後,套用到 Blogger Data 上面並沒有效。原生的 Blogger 查詢參數並沒有更改 feed entries 順序的參數,連 Base API 的也不能用,看來就無解了,只好自己用程式去排囉。

張騎米 提到...

哎呀~好吧~
看來還是得要靠程式來搞了...
下面是小弟用BLOGGER資料當作資料源所作的網站,是使用PHP寫的。歡迎指教
每週看戲俱樂部
http://mjkc.tw

張騎米 提到...

忘了說,目前這個網站除了文章回應順序無法修正外,關鍵字查詢也還有錯誤。就是之前問您要怎麼取得網誌內容的FEED,我的作法是用 blogsearch.google.com 但是他傳回的FEED沒有單篇文章的POSTID,所以無法解析。

mrmu 提到...

感謝感謝! 被blogger的rss困擾整個晚上!! 同樣是抓blogger網址後接rss.xml的檔,有的是atom,有的是rss,非常困擾!! 看到您介紹可以接參數,終於解決我的問題了~ :D

梅酒 提到...

最近要設定by tag去feed匯入facebook,一直有參考到這篇文章,雖然是很舊的文章了,不過還是很受用。
特來感謝一下。

Shahjahan 提到...

Greet to see this type of Articles every informative.
Manpower Agency Nepal

mk zaman 提到...

So that the websites which is having the complete
details about your business and gives more
information to your clients or consumers and makes
them know more about your business and its functions.
hazi store bd

張貼留言

歡迎留言或發表意見,不過要理性不做人身攻擊。匿名的朋友得到回應的速度會比較慢喔~
發問相關的禮貌和規矩請先參考這篇文章,不當留言、和本文無關的回應可能會被直接刪除無視喔!