噗浪機器人範例程式– 使用Plurk API 2.0 - Dada's Blog

文章推薦指數: 80 %
投票人數:10人

噗浪大部分的機器人仍然使用Plurk 1.0 撰寫,甚至有一部分機器人使用的是非官方的API,這篇文章將簡介如何使用Plurk API 2.0 OAuth 的方式開發機器人 ... 月曆下載 文章彙整   這篇文章說明如何用PlurkAPI2.0自己寫一個噗浪機器人 (本文同步發表於噗浪官方部落格) 噗浪大部分的機器人仍然使用Plurk1.0撰寫,甚至有一部分機器人使用的是非官方的API,這篇文章將簡介如何使用PlurkAPI2.0OAuth的方式開發機器人程式,同時,這個範例也使用PlurkRealtimeAPI(CometPush)的方式來追蹤時間軸,避免給伺服器帶來過多的負擔 由於PlurkAPI2.0使用OAuth方式,所以啟動機器人之前,您必須先獲得以下四個參數 AppKey AppSecret AccessToken AccessTokenSecret 獲得AppKey及AppSecret的方式很簡單,首先先註冊一個新的噗浪帳號用來跑這個機器人,然後登入新帳號後,開啟以下這個連結: http://www.plurk.com/PlurkApp/ 按下「註冊新的應用服務」,填寫關於你的程式的資料,其中OAuthcallback保持空白即可 註冊完畢後就可以看到你的應用程式列表 然後按下「編輯」這個按鈕,就可以看到以下畫面: 這邊我們就可以得到AppKey以及AppSecret了 接下來要進行OAuth的授權驗證來取得AccessToken及AccessTokenSecret 按下「測試工具」來開啟OAuth的TestConsole 首先按下「GetRequestToken」來取得暫時的RequestToken, 接下來按下「OpenAuthorizationURL」來開啟授權頁面: 按下「是,我要授權」後,會得到一個認證碼: 把這個六位數的認證碼記下來,然後回到TestConsole, 按下「GetAccessToken」,這時會提示您輸入認證碼 把您剛剛記下來的數字填進去,按下「確定」後, 就可以得到永久有效的AccessToken及AccessTokenSecret了 然後你就可以開始寫程式了,下面是一個用Python寫的噗浪機器人, 把其中APP_KEY,APP_SECRET,ACCESS_TOKEN,ACCESS_TOKEN_SECRET置換掉即可 這個程式需要使用到plurk-oauth這個Pythonlibrary, 請把plurk_oauth/這個目錄下的檔案下載回來跟你的程式放在一起就可以了 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 #!/usr/bin/python #-*-coding:utf-8-*-   importre importjson importurllib2   fromPlurkAPIimportPlurkAPI   plurk=PlurkAPI('APP_KEY','APP_SECRET') plurk.authorize('ACCEESS_TOKEN','ACCESS_TOKEN_SECRET')   comet=plurk.callAPI('/APP/Realtime/getUserChannel') comet_channel=comet.get('comet_server')+"&new_offset=%d" jsonp_re=re.compile('CometChannel.scriptCallback\((.+)\);\s*'); new_offset=-1 whileTrue: plurk.callAPI('/APP/Alerts/addAllAsFriends') req=urllib2.urlopen(comet_channel%new_offset,timeout=80) rawdata=req.read() match=jsonp_re.match(rawdata) ifmatch: rawdata=match.group(1) data=json.loads(rawdata) new_offset=data.get('new_offset',-1) msgs=data.get('data') ifnotmsgs: continue formsginmsgs: ifmsg.get('type')=='new_plurk': pid=msg.get('plurk_id') content=msg.get('content_raw') ifcontent.find("hello")!=-1: plurk.callAPI('/APP/Responses/responseAdd', {'plurk_id':pid, 'content':'world', 'qualifier':':'})#!/usr/bin/python #-*-coding:utf-8-*- importre importjson importurllib2 fromPlurkAPIimportPlurkAPI plurk=PlurkAPI('APP_KEY','APP_SECRET') plurk.authorize('ACCEESS_TOKEN','ACCESS_TOKEN_SECRET') comet=plurk.callAPI('/APP/Realtime/getUserChannel') comet_channel=comet.get('comet_server')+"&new_offset=%d" jsonp_re=re.compile('CometChannel.scriptCallback\((.+)\);\s*'); new_offset=-1 whileTrue: plurk.callAPI('/APP/Alerts/addAllAsFriends') req=urllib2.urlopen(comet_channel%new_offset,timeout=80) rawdata=req.read() match=jsonp_re.match(rawdata) ifmatch: rawdata=match.group(1) data=json.loads(rawdata) new_offset=data.get('new_offset',-1) msgs=data.get('data') ifnotmsgs: continue formsginmsgs: ifmsg.get('type')=='new_plurk': pid=msg.get('plurk_id') content=msg.get('content_raw') ifcontent.find("hello")!=-1: plurk.callAPI('/APP/Responses/responseAdd', {'plurk_id':pid, 'content':'world', 'qualifier':':'}) 執行方式: #pythonmy-robot.py 這個範例程式作的事情很簡單,就是一個無窮迴圈,首先每次都會先接受所有成為朋友的請求,然後看看有沒有新的噗,如果有新的噗,而且內容有‘hello’字串的話,就會自動回覆一個‘world’字串 提醒大家,噗浪並不反對機器人的存在,但使用這個範例程式請注意以下幾點: 建議使用新的帳號,不要用原有的帳號 機器人請勿主動去加網友為朋友 機器人請勿去關注(追蹤)任何其他網友 請勿自動回覆未成為機器人的朋友所發的噗 請勿張貼廣告訊息 請注意回覆頻率,以不過度干擾使用者的方式為原則 相關   14Responsesto“噗浪機器人範例程式–使用PlurkAPI2.0” 路人says: 2011-11-08at23:04 你好,這幾天想製作一個噗浪機器人 不料在申請API的時候就出現了問題 在申請頁面需輸入”官方網站”的部分我照著你的方法做了 填入http://www.plurk.com/XXX(我的噗浪網址) 不過他卻跑出「*請輸入應用服務所屬的官方網站網址–http://…」 這個是什麼意思呢?我的噗浪帳號已經先註冊好也經過E-mail認證了 不知道是不是我輸入錯東西了? 希望能得到解答!謝謝你!😮 回覆 dadasays: 2011-11-12at20:34 您好,此問題已經修正了🙂 回覆 YouShengsays: 2011-11-15at13:00 您好,最近想製作個機器人 但…大大所提供的plurk-oauth似乎連結消失 可否麻煩大師可以再提供呢 希望大師能為我提供並解惑,謝謝 回覆 dadasays: 2011-11-24at08:12 您好,連結已經修正,謝謝提醒🙂 回覆 limilissays: 2011-12-13at15:59 請問你說的下載下來的程式是放在“Response:”裡面嗎? 回覆 dadasays: 2011-12-15at17:45 limillis您好,能否再清楚說明您的問題 回覆 comensays: 2012-01-18at17:05 請問一下出現 ImportError:Nomodulenamedoauth2 是什麼原因? 回覆 dadasays: 2012-01-18at23:26 您還需要python-oauth2library 到https://github.com/simplegeo/python-oauth2下載, 把oauth2目錄放到同一個目錄下就可以了 回覆 jjsays: 2012-04-12at21:26 請問一下plurk_oauth資料夾下有三個檔案 PlurkAPI.py PlurkOAUTH.py _init_.py 我是要下載哪一個呢? 還是進去後直接複製他的程式碼 還有 複製完後分別是要貼在 PlurkAPI&OAuthtestconsoleforDevelopers頁面的哪幾個格子呢?謝謝 回覆 JJsays: 2012-04-12at23:25 你好 我選了功能後 按下INVOKEAPP 他下面的欄位會自動跑出程式碼耶 我可以用這個就好了嗎? 請問一下 1.自動發噗的是選哪個功能(以及是在GETORPOST下) 2.自動回噗的是選哪個功能(以及是在GETORPOST下) 3.自動接受全部好友邀請的是哪個功能(以及是在GETORPOST下) 還有我按完INVOKEAPP後 雖然跑出程式碼 但我要怎樣才算確認我已將此功能將入我的帳號使用呢? 謝謝 回覆 JJsays: 2012-04-15at12:27 你好 我下載並安裝了PYTHON27的程式 開新檔案後貼入以上程式碼 跑的時候出現ImportError:NomodulenamedPlurkAPI的訊息 我有到PLURKOAUTH去下載PLURKPAI.PY但是下載的卻是HTML檔案 請問我還需要做甚麼才不會在執行時再出現錯誤訊息呢? 謝謝 回覆 Allensays: 2014-03-27at20:17 請問一下,小弟最近開始寫機器人程式,想問一下這支程式碼有辦法改成自行去抓取別人時間軸上的噗文嗎?(純粹要用來做研究用的) 回覆 [記錄]用php+PlurkAPI2.0寫噗浪抽獎程式-.::EmptySpace::.全部隨手寫says: 2021-06-19at11:26 […]註冊API的參考網頁:要使用API需要Key,我參考了這篇文章[…] ダッチワイフリアルsays: 2022-07-13at12:32 ラブドールリアル革新の進歩であなたの服に瞬間的な位置を追加するための適応可能なアプローチセックス人形は、そこにいるすべての男性に適したシリコーンのセックス人形が異常な性的欲求を持つ人々を助けることができるかどうかを同様に開発しました 回覆 歡迎留下您的意見取消回覆  Linode新增東京機房/HinetFTTB50M測試結果  家裡的光世代升級為100M/20M 熱門文章與頁面︰自製台灣2022年月曆(含台灣節日及農曆節氣)[Word/PDF]月曆下載自製台灣2023年月曆(含台灣節日及農曆節氣)[Word/PDF]一個長整數各自表述(in64-bitsystem)自製台灣2019年月曆(含台灣節日及農曆節氣)[Word/PDF]分類 心情小語(2) 台灣(6) 行事曆(11) 作業系統(15) 投資理財(4) 亞洲(2) 美國(3) 消費資訊(5) 旅遊休閒(11) 軟體(13) 程式語言(8) 硬體(5) 資訊安全(5) 電腦資訊(1) 網路科技(25) 趣味軼事(9) 其他操作 登入 訂閱網站內容的資訊提供 訂閱留言的資訊提供 WordPress.org台灣繁體中文



請為這篇文章評分?