研究msn plus script 和 twitter API 的心得

其實一開始只是想研究msn plus script,但是後來想到之前有一隻script是把個人狀態留言同步傳送給twitter,那我乾脆來個逆向操作,把twitter 的最新留言餵給我的訊息。

今天測試的時候一開始要先研究他的觸發事件,於是我設計了各種觸發的事件,但是對應的動作都是"對美瑜說hi"。例如假設事件是"使用者登入",那我只要登入就會對美瑜丟一個訊息"hi"。我反覆測試各種事件,玩的不亦樂乎,但後果是...差點被她封鎖= =|||

後來一切都搞定後,又寫了一個自動猜拳程式,其實是判斷對方出甚麼,再給予適當的回應。非常簡單的程式,虛擬碼如下。

當收到訊息時(訊息) { if(訊息=="剪刀") { 回應("石頭"); } else if(訊息=="石頭") { 回應("布"); } else if(訊息=="布") { 回應("剪刀"); } }

於是我又找美瑜來測試,每次都贏(廢話),我想她快被我搞瘋了吧。再過幾天就要教師檢定的人還是少惹為妙。

沒關係,我還有法寶可以玩,那就是我一開始說的Twitter!趕快去爬twitter的API,發現也是非常簡單的協定,現在所謂的網路的Open API幾乎都是XML的協定傳送而已。

function Twitter(Username, Password, id) {

var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

xmlHttp.open("GET", "http://twitter.com/statuses/user_timeline/"+id+".xml", false, Username, Password);

xmlHttp.send("count=1");

var xmlDoc=xmlHttp.responseText;

xmlMailParser = new ActiveXObject("Microsoft.XMLDOM"); xmlMailParser.async="false" xmlMailParser.loadXML(xmlDoc);

var feed = xmlMailParser.documentElement;

return feed.getElementsByTagName("text")[0].text;

}

短短的幾句,就能夠把Twitter最新的一則訊息的文字取出來。再配合"Timer"設定每五分鐘執行一次,並把結果餵給個人狀態就可以囉。

其實對於這種網路提供的API真的很喜歡,因為使用簡單,而且它提供我與伺服器互動的管道,可以自己寫程式自動化處理一些瑣事。其實寫這篇的時候就想到了一個點子:msn 的blog更新時不是會有小星星嗎?但是其他的blog使用者怎麼把最新的一篇文章顯示給msn的朋友知道(不要說手動改,這樣會抹煞寫這些程式的意義)?我想到用Google Feed API+Messenger Plus! Live scripting就可以完成,看是要放最新一篇的標題還是摘要都可以。

個人認為,這些API的妙用就在於"結合"各種服務,以達到更多的效益。

9 則留言:

  1. 我之前想得太複雜了,直接用Blogger Data API 就可以了。
    現在我的訊息列會顯示最新的文章篇名,還順便加上"現正跟誰聊天"的功能。

    回覆刪除
  2. 你好啊~請問閣下這篇是用什麼開發環境寫的哩?
    因為最近寫程式需要使用到twitter api,但是從沒開發過所以很困擾,所以向閣主請教一下。

    回覆刪除
  3. To mion:
    你好,我是使用msn plus 裡面的指令碼編輯器寫的,使用的是JScript。
    有需要其它的文件的話可以參考http://www.msgpluslive.com.tw/scripts/view/13-Official-Scripting-Documentation/
    謝謝。

    回覆刪除
  4. 謝謝你閣主,我會試看看的:)

    另外我想請教一件事,twitter有提供api嗎?
    因為巴布有提供,但twitter不知是我英文實在太差還是我不會用
    我一直找不到它的api網址,如果閣主知道有api之類的東西的話,能告知我就實在太好了。

    p.s 因為我卡在asp.net ajax呼叫不到js,想到原來的方法→用api抓訊息。

    回覆刪除
  5. API 在這裡(首頁的下方有連結)
    http://groups.google.com/group/twitter-development-talk/web/api-documentation

    內有說明,主要是回傳xml的格式。
    加油吧 :)

    回覆刪除
  6. 這頁我也有看到,不過我套用了一下發現asp.net還是沒東西
    不過我用巴布的API卻可以顯示我的訊息
    所以我想我大概是英文不行吧(見笑了)

    閣主謝謝你,我恐怕還得要繼續研究好一陣子!

    回覆刪除
  7. 台灣MSN PLUS!LIVE討論區 邀請您~
    http://www.type24.net/forum/index.php

    回覆刪除
  8. 3分鐘學會使用程式發送msn訊息,php篇(一)
    http://rd-program.blogspot.com/2008/11/5msnphp.html

    3分鐘學會使用程式發送msn訊息,dotNet C#篇(二)
    http://rd-program.blogspot.com/2008/11/3msn-net-c.html

    3分鐘學會使用程式發送msn訊息, Java篇(三)
    http://rd-program.blogspot.com/2008/11/3msn-java.html

    回覆刪除
  9. 3分鐘學會使用程式發送msn訊息, Perl篇(四)
    http://rd-program.blogspot.com/2008/11/3msn-perl_14.html

    3分鐘學會使用程式發送msn訊息, VB6.0篇(五)
    http://rd-program.blogspot.com/2008/11/3msn-vb60.html

    回覆刪除