MTで記事に指定したタグをもとにDeliciousのタグフィード情報を得る
Movable Typeで記事に指定しているタグに基づいて、自分のDeliciousアカウントから同一のタグのフィードの情報をGoogle AJAX Feed APIを使って取得してみます。
基本的なところとして、DeliciousのフィードのAPIをおさえておきます。
自分のアカウント(ここで提示するコード上では、{your Delicious account})の特定タグのフィードを得るAPIは以下のようになっています。
http://feeds.delicious.com/v2/rss/{your Delicious account}/{TagName}
タグが設定された記事を想定するので、表示のコード一式をMTEntryIfTaggedで囲みます。
<mt:EntryIfTagged> <mt:SetVarBlock name="entryTagArray"> <mt:EntryTags glue=","> <mt:TagName> </mt:EntryTags> </mt:SetVarBlock> <script type="text/javascript" src="http://www.google.com/jsapi?key={your api key}"></script> <script type="text/javascript"> var feedBase='http://feeds.delicious.com/v2/rss/{your Delicious account}/'; google.load("feeds", "1"); function OnLoad() { // create a feed control var feedControl = new google.feeds.FeedControl(); feedControl.setNumEntries(10); var tagsArray = "<$MTGetVar name="entryTagArray" strip_linefeeds="1" regex_replace="/[ ]+/g",""$>".toLowerCase().split(","); for (var i=0; i<tagsArray.length; i++){ feedControl.addFeed(feedBase + encodeURIComponent(tagsArray[i]), tagsArray[i]) } feedControl.draw( document.getElementById("feedContent"), { drawMode : google.feeds.FeedControl.DRAW_MODE_TABBED, }); } google.setOnLoadCallback(OnLoad); </script> <mt:EntryIfTagged>
Google APIの呼び出しをおこないます(key=のあとには自分のAPI keyをいれます。keyをつかわないときは、クエリなしの/jsapiどまりのURIで動作します)。
tagのArrayを作ります。サンプルではコードの視認性の理由で一旦変数に渡しています。
.split(",")
をつけることで、配列としてあつかうようになります。これを配列の数だけまわして、feedControl.addFeed()を繰り返すことで複数のタグのフィードを登録するということをおこなっています。
toLowerCase()を使っているのはDeliciousでは大文字/小文字が区別はないようですので統一のためです。
feedControl.setNumEntries(Number)では、取得件数を指定しています。
上記のコードは、個別エントリテンプレートのhead要素内にいれておきます。
Feedの流し込み先に以下の部分を用意して再構築して完了です。サンプルではfeedContentというIDにFeedを入れるようになっています。
<div id="feedContent">loading...</div>
テストページは、以下にあります。
http://www.markdiary.com/sample/tag_to_deliciousfeed-test.htmlTrackbacks:0
- TrackBack URL for this entry
- https://www.markdiary.com/mt/app-pingback.cgi/68
- Listed below are links to weblogs that reference
- MTで記事に指定したタグをもとにDeliciousのタグフィード情報を得る from maRk lab
Comments:0