Dec 18, 2005
del.icio.us API にチャレンジ
del.icio.us API とは
ソーシャル・ブックマークサービスの del.icio.us が公開している API。 ブックマークの登録、削除などの操作ができる。 方式は Yahoo! 同様 REST を採用している。
- del.icio.us
- http://del.icio.us/
- del.icio.us - Reference
- http://del.icio.us/help/api/
試してみる
試してみた。
- 最初に del.icio.us トップ から del.icio.us のアカウント登録を行う。
- リクエスト用の URL を作成する。
- 早速リクエストを送ってみる。リクエスト URL 実行時に BASIC 認証によるログインが要求されるので 1 で登録したアカウントで認証を行う。
ブックマークの登録
- http://del.icio.us/api/posts/add?url=http://www.in-vitro.jp/blog/index.cgi/index.rss&description=in-vitro.jp
-
<?xml version='1.0' standalone='yes'?> <result code="done" />
ブックマークの取得
- http://del.icio.us/api/posts/get?
-
<?xml version='1.0' standalone='yes'?> <posts dt="2005-12-16" tag="" user="invitro.jp"> <post href="http://www.in-vitro.jp/blog/index.cgi/index.rss" description="in-vitro.jp" hash="e885a76a691ce90ff1626c1bd5c41a26" others="1" tag="system:unfiled" time="2005-12-17T14:44:59Z" /> </posts>
ブックマーク先 URL の取得指示
- http://del.icio.us/api/posts/update
-
<?xml version='1.0' standalone='yes'?> <update time="2005-12-17T14:54:38Z" />
ブックマークの削除
- http://del.icio.us/api/posts/delete?url=http://www.in-vitro.jp/blog/index.cgi/index.rss
-
<?xml version='1.0' standalone='yes'?> <result code="done" />
del.icio.us 呼び出し用 HTML
Google Web APIs (beta) にチャレンジ で使用した HTML を BASIC 認証に対応させて使用した。
<html>
<head>
<script>
<!--
var req;
function sendRequest() {
var url = document.myform.url.value;
var param = document.myform.request.value;
var username = document.myform.username.value;
var password = document.myform.password.value;
req = prepareXMLHttpRequest();
if (req == null) {
alert('XMLHttpRequest is not supported');
return;
}
var encodedParam = '';
var splitParam = param.split('&');
for(i = 0; i < splitParam.length; i++) {
var tmp = splitParam[i].split('=');
encodedParam += '&' + encodeURIComponent(tmp[0]) + '=' + encodeURIComponent(tmp[1]);
}
req.onreadystatechange = showResponse;
if(username != null && password != null) {
req.open("POST", url, true, username, password);
} else {
req.open("POST", url, true);
}
req.setRequestHeader("Content-Type" , "text/xml");
req.send(encodedParam);
}
function showResponse() {
if (req.readyState == 4) {
if (req.status == 200) {
document.myform.response.value = req.responseText;
} else {
document.myform.response.value = 'FAILURE!! ' + req.status + ':' + req.statusText;
}
}
}
function prepareXMLHttpRequest() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
} else if (window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
}
return null;
}
//-->
</script>
</head>
<body>
<form name="myform">
<input type="button" value="POST!!" onclick="sendRequest();"><br>
<br>
URL: <input type="text" name="url" size="100"> <span style="font-size: xx-small;">[REQUIRED]</span><br>
USERNAME: <input type="text" name="username" size="30"> <span style="font-size: xx-small;">[OPTIONAL]</span><br>
PASSWORD: <input type="text" name="password" size="30"> <span style="font-size: xx-small;">[OPTIONAL]</span><br>
<br>
REQUEST: <span style="font-size: xx-small;">[OPTIONAL]</span><br>
<textarea name="request" cols="100" rows="25"></textarea><br>
<br>
RESPONSE:<br>
<textarea name="response" cols="100" rows="25"></textarea>
</form>
</body>
</html>
TrackBack ping me at
http://www.in-vitro.jp/blog/index.cgi/WebService/20051218_01.trackback
writeback message: Ready to post a comment.
