最近放假沒事都在玩噗...所以也玩玩噗的API...
plurk機器人是怎麼製作的呢?
方法有兩種:
1.Plurk API推出前,有一些玩家自己做了簡單的功能!(非官方版本)
2.Plurk API(official version)
今天要介紹的是official version.
工欲善其事,必先利其器!!Plurk API如何取得?
到下列網址去申請API Key
http://www.plurk.com/API
接著就能取得一串勒勒長的key
還會使用到一個Json的套件!
http://james.newtonking.com/projects/json-net.aspx
這是Plurk的資料傳送格式!!
在開始實作之前先大致瞭解了一下plurk API的函式(絕大部份是用GET來做的)
所以我們要先寫一個Http Get的函式,以便送出請求!
public CookieContainer session = new CookieContainer();//session public string Get(string url) { string request = null; try { HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create(url); WebReq.CookieContainer = session; WebReq.Method = "GET"; HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse(); StreamReader sr = new StreamReader(WebResp.GetResponseStream(), Encoding.Default); request = sr.ReadToEnd().Trim(); } catch (WebException ex) { } return request; }
接下來開始實作login,依然會使用到上述的Get函式
string API_KEY = "*********************************"; public bool Plurk_login(string username, string password)//Plurk login 登入成功回傳true { if (Get("http://www.plurk.com/API/Users/login?api_key=" + API_KEY + "&username=" + username + "&password=" + password) == null) return false; else return true; }
如果Get成功,則會回傳true,失敗則傳回false!
登入成功之後,就可以發噗哩!!!發噗也不困難!!
public bool Plurk_PostMessage(string content,string qualifier,string lang) { //content(內容),qulifier(噗最前方的字),lang(語言):tr_ch(繁中) string add_message = "api_key=" + API_KEY + "&content="+content+ "&qualifier=" +qualifier+"&lang="+lang; if(Get("http://www.plurk.com/API/Timeline/plurkAdd?" + add_message)==null)) return false; else return true; }
除了發出除了上述的參數以外,還有一些非必要參數!可以參考下列網址:
http://www.plurk.com/API#/API/Timeline/plurkAdd
P.S.發噗有防洪機制!!所以三分鐘才能發一次!!
另外有一點,plurk API會回傳他的錯誤訊息!!不過礙於HttpWebResponse只能傳回100,200的值
似乎沒辦法傳回錯誤時所回傳的值!!
若要達到這樣的話!!可能會需要自行撰寫一個HttpWebResponse!!
2010/07/14 By YC
轉載請附上作者!
你很認真哦!
回覆刪除看來你應該也是受了祕密的影響吧!!!
加油哦!!
小佩