Home > memo > MTで記事に指定したタグをもとにDeliciousのタグフィード情報を得る

MTで記事に指定したタグをもとにDeliciousのタグフィード情報を得る

  • Posted by: maRk
  • memo

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.html

Comments:0

コメントする

Trackbacks:0

Home > memo > MTで記事に指定したタグをもとにDeliciousのタグフィード情報を得る

Search

Feeds

Return to page top