Disqus 本來是有小工具可以直接把網站的最新留言嵌入網站,但後來改成需要透過他們的 API 才可以取得留言,這邊就來說一下該怎麼使用 API。
首先在 Disqus 建立帳號,之後到 Setting 的地方依據提示的步驟建立 Application,之後就可以拿到 api key 還有 api secret。
拿到這兩個後,就可以到 API post list 的頁面去參考文件說明呼叫 API。
API 的 url 為 https://disqus.com/api/3.0/posts/list.json,需要至少帶入 api_key 還有 api_secret 兩個參數,帶完後會大概像這樣:
https://disqus.com/api/3.0/posts/list.json?api_key=YOUR_API_KEY&api_secret=YOUR_API_SECRET
不過這個 API 會回傳所有的留言,其實頗奇怪的,所以如果要抓到你的網站的留言,需要再帶入 forum 的參數,forum 會是你在建立留言板時,Disqus 給你的 shortname,像是這樣:
把這些參數都帶入後,就可以看到 API 回傳留言的資料了,再去解析那些資料後顯示在網頁上即可。
回傳的內容大概會像這樣:
{ "cursor":{ "prev":null, "hasNext":false, "next":"1213061528000000:1:0", "hasPrev":false, "total":null, "id":"1213061528000000:1:0", "more":false }, "code":0, "response":[ { "isJuliaFlagged":true, "isFlagged":false, "forum":"bobross", "parent":1, "author":{ "username":"disqus_api", "about":"", "name":"disqus_api", "url":"", "isFollowing":false, "isFollowedBy":false, "profileUrl":"http://disqus.com/disqus_api/", "avatar":{ "permalink":"http://disqus.com/api/users/avatars/disqus_api.jpg", "cache":"http://mediacdn.disqus.com/1091/images/noavatar92.png" }, "id":"1", "isAnonymous":false, "email":"[email protected]" }, "media":[], "isApproved":true, "dislikes":0, "raw_message":"\"Happy little bush.\"", "id":"3", "thread":"1", "points":0, "createdAt":"2008-06-10T01:45:27", "isEdited":false, "message":"\"Happy little bush.\"", "isHighlighted":false, "ipAddress":"127.0.0.1", "isSpam":false, "isDeleted":false, "likes":0 }, { "isJuliaFlagged":true, "isFlagged":false, "forum":"bobross", "parent":null, "author":{ "name":null, "url":null, "profileUrl":"", "avatar":{ "permalink":"http://www.gravatar.com/avatar.php?gravatar_id=575007c5f1370d7cf76cbd79e5a81584&size=32&default=http://mediacdn.disqus.com/1091/images/noavatar32.png", "cache":"http://www.gravatar.com/avatar.php?gravatar_id=575007c5f1370d7cf76cbd79e5a81584&size=32&default=http://mediacdn.disqus.com/1091/images/noavatar32.png" }, "isAnonymous":true, "email":"[email protected]" }, "media":[], "isApproved":true, "dislikes":0, "raw_message":"\"Happy little tree limb.\"", "id":"2", "thread":"1", "points":0, "createdAt":"2008-06-10T01:45:04", "isEdited":false, "message":"\"Happy little tree limb.\"", "isHighlighted":false, "ipAddress":"127.0.0.1", "isSpam":false, "isDeleted":false, "likes":0 }, { "isJuliaFlagged":true, "isFlagged":false, "forum":"bobross", "parent":null, "author":{ "username":"disqus_api", "about":"", "name":"disqus_api", "url":"", "isFollowing":false, "isFollowedBy":false, "profileUrl":"http://disqus.com/disqus_api/", "avatar":{ "permalink":"http://disqus.com/api/users/avatars/disqus_api.jpg", "cache":"http://mediacdn.disqus.com/1091/images/noavatar92.png" }, "id":"1", "isAnonymous":false, "email":"[email protected]" }, "media":[], "isApproved":true, "dislikes":0, "raw_message":"\"We want happy paintings. Happy paintings. If you want sad things, watch the news.\"", "id":"1", "thread":"1", "points":1, "createdAt":"2008-06-10T01:32:08", "isEdited":false, "message":"\"We want happy paintings. Happy paintings. If you want sad things, watch the news.\"", "isHighlighted":false, "ipAddress":"127.0.0.1", "isSpam":false, "isDeleted":false, "likes":1 } ] }
其他可以傳入的參數也可以看官網的 API 文件說明。