Home / API

API


API特集

 待望のTimelogAPIが公開されました! このページではAPI特集ということで、対応アプリやスクリプトなどを紹介していければと思います。


付録:
 一応、FirefoxのGreaseMonkey用のはてなブックマークとTimelogブックマーク同時書き込みスクリプトも作りましたのでアップし ておきます。IDとPASSWORDのところを書き換えてご利用くださいこちらのTwitter用のスクリプトをちょこっと変えただけです。trickstar_os
さん、転載許可ありがとうございました。Twitter用の書き込み系スクリプトは、結構簡単に移植できそうですね。

 コメントのところはタグがTimelogと合わないのでコメントアウトしていま すが、コメントアウトを外せばコメントもひっつきます。今後、TinyURL対応の予定。

 本家のバージョンアップに伴い、機能アップしました。Timelog用コメント入力機能と、TinyURL対応です。
  2007/5/25 ヘッダに'User-Agent':'Cross Post_Hatena_Timelog'を追加
  2007/6/11 はてなブックマークの仕様変更に対応

// ==UserScript==
// @name        Cross Post_Hatena_Timelog
// @namespace   http://timelog.wiki.zoho.com/
// @include     http://b.hatena.ne.jp/add?mode=confirm*
// @version      0.2
// ==/UserScript==

(function () {
    var form = document.getElementById('edit_form');
    var twitBtn = document.getElementsByName('commit')[0].cloneNode(false);
    twitBtn.value += '(with Timelog)';
    twitBtn.style.margin = '0 0 0 5px';
    var edit = document.createElement('textarea');
    edit.style.width='100%';
    edit.style.height='38px';
    edit.style.fontSize = '0.9em';
    edit.style.verticalAlign = 'bottom';
    edit.addEventListener('keyup',twitcount,false);
    var count = document.createElement('span');
    function twitcount(){
        count.innerHTML=byteCount(this.value)+'/140';
    }
    function byteCount(str){
        len = [];
        Array.prototype.forEach.call(str,function(c){
            len.push((c.charCodeAt() <= 255) ? '1': '2b')
        });
        return len.join('').length;
    }
    function addTwit(shorturl){
        edit.value = [
            '/b '
            ,document.getElementsByName('title')[0].value
            ,' '
            ,shorturl
            ].join('');
        form.insertBefore(twitBtn, document.getElementById('tags_completion'));
        form.insertBefore(edit, document.getElementById('tags_completion'));
        form.insertBefore(count, document.getElementById('tags_completion'));
        twitcount.apply(edit,[]);
    }
    twitBtn.addEventListener('click', function (e) {
        var status = encodeURIComponent(edit.value);
        var url = 'http://ID:PASSWORD@api.timelog.jp/new.asp';
        GM_xmlhttpRequest({
            method : 'POST',
            url : url,
            data: 'text=' + status,
            headers: {
                'Content-Type':'application/x-www-form-urlencoded',
                'User-Agent':'Cross Post_Hatena_Timelog'
            }
        });
    }, false);
    var url = document.getElementsByName('url')[0].value;
    var w = (typeof unsafeWindow == "undefined") ? window : unsafeWindow;
    if (url.length > 40) {
        w.tinyurlTimelogCallback = function(url) {
            addTwit(url);
        };
        var s = document.createElement('script');
        s.src = 'http://remysharp.com/tinyurlapi?callback=tinyurlTimelogCallback&url=' + url;
        document.body.appendChild(s);
    } else {
        addTwit(url);
    }
})();





     RSS of this page