メイン

twitter アーカイブ

2007年04月22日

自分がブックマークしようとしているページをtwitterに投稿するスクリプトとbookmarklet

えらい盛り上がりを見せている twitter 。ゆるいコミュニケーションである事以上に、何となくゆるいアプリが作れちゃうAPIが公開されている事が面白いという方がおられたのですが、激しく同感かも知れず。

んで、タイトル通りです。普段はソーシャルブックマークの bookmarklet を使ってブックマークしていますが、これと差し替える感じで

  1. twittter API でブックマークしようとしているページ情報を投稿する
  2. 自動的にソーシャルブックマークのブックマークページにリダイレクト

みたいなモノがあれば面白いかもなと。既にあるとは思うんですが、何となく気分転換をかねて自作してみた次第であります。スクリプトの編集、サーバー上への設置、bookmarklet の自作...と面倒な手順を踏まねばなりませんが、宜しければどうぞという事で。

MacOSX用のclient「twitterrific」で見えやすくする為に投稿内容に \n を入れてます。

//----(config)----------------------------

// twitterの username
$twitter_username = 'twitter_username';

// twitterの password
$twitter_password = 'twitter_password';

// 普段使っているソーシャルブックマークを表す識別子
// h はてなブックマーク
// d del.icio.us
// (その他は下の $sbm_array を編集して適当に追加して下さいまし)
$sbm_name = 'd';

// 普段使っているソーシャルブックマークでのユーザー名
$sbm_user = 'sbm_username';
//---------------------------------------


// sbm table
$sbm_array = array( 'h' => array('name' => 'hatena',
'url' => 'http://b.hatena.ne.jp/append?%%SBM_TARGET%%'),
'd' => array('name' => 'del.icio.us',
'url' => 'http://del.icio.us/%%SBM_USERNAME%%/?v=2&url=%%SBM_TARGET%%&title=%%SBM_TITLE%%'));

// parameter check
if(!isset($_GET['url']) || !isset($_GET['title'])){
die("[ERROR] illegal parameters.");
}else{
$sbm = $sbm_array[$sbm_name];
$sbm_target = urldecode($_GET['url']);
$sbm_title = $_GET['title'];
}

// shorten url for twitter length distriction
$shortened_url = file_get_contents("http://tinyurl.com/api-create.php?url=".$sbm_target);

// cut
$sbm_title = mb_substr($sbm_title, 0, 50);

// the message which want to send
$message = "bookmarking on {$sbm['name']}!!\n{$sbm_title}:\n{$shortened_url}";

// the twitter API address
$twitter_api = 'http://twitter.com/statuses/update.xml';

// set up and execute the curl process
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $twitter_api);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "status=$message");
curl_setopt($ch, CURLOPT_USERPWD, "$twitter_username:$twitter_password");
$buffer = curl_exec($ch);
curl_close($ch);

// replace username, url and title
$url = $sbm['url'];
$url = str_replace('%%SBM_USERNAME%%', $sbm_user, $url);
$url = str_replace('%%SBM_TARGET%%', $sbm_target, $url);
$url = str_replace('%%SBM_TITLE%%', $sbm_title, $url);

// redirect to sbm site.
header("Location: {$url}");
?>


ソース

以下、使い方です。

  1. ソースを展開して必要な値を記入する
    • twitterのユーザー名
    • twitterのパスワード
    • 使いたいソーシャルブックマークの識別子(del.icio.usならd, はてブならh)
    • ソーシャルブックマークのユーザー名
  2. phpの使えるレンタルサーバーとかにftpでアップロード
  3. アップロードしたスクリプトの場所が http://example.com/twittark.php/ 以下であれば、javascript:location.href='http://example.com/twittark.php?sbm=d&url='+encodeURIComponent(location.href)+'&title='+encodeURIComponent(document.title) をブックマークとして追加

こんな感じで後は普通にbookmarkletとして使えるというもの。...ってか、設定面倒くさいですが。


twitter の username, password を頂く訳にはいかないのでサービスとして作るのは断念。こんな手順になっちまいました。twitthisがやってる事と同じ事をすればもちっと美しくなるかな?

2007年05月06日

URLをTinyURLで短くしたりもとに戻したりするスクリプト

もうほとんどメモ書きですが。twitterをやるようになって、

  1. URL → TinyURL
  2. TinyURL → URL

といった変換を手軽にやりたくなる事が増えてきました。

2. については Firefox の GreaseMonkey でtip表示してくれるようなものもありますが、自分はMacOSXの専用クライアントソフト「Twitterrific」を使っているし、何かとコンソールで済ませたい今日この頃的には、コピペ & コマンドで格好よくいきたいところ(謎)。

という訳で作りました(作ったという範疇に入らないという話もある)。/usr/sbin とかパスを通している所に適当に放り込んでると予想以上に重宝している次第。


url2tiny

#!/bin/sh
# url --> tinyurl
# $ url2tiny http://www.example.com/
#
if [ -z $1 ]; then
exit 1;
fi
TINYURL_API="http://tinyurl.com/api-create.php?url="
curl ${TINYURL_API}$1
echo


tiny2url

#!/bin/sh
#
# tinyurl --> url
# $ tiny2url http://tinyurl.com/xxxxxx
#

if [ -z $1 ]; then
exit 1;
fi
curl -I -s $1 | grep Location: | sed 's/Location: //'
echo

こんな感じで。

About twitter

ブログ「feedtailor Inc. 大石裕一の開発ブログ」のカテゴリ「twitter」に投稿されたすべてのエントリーのアーカイブのページです。新しい順番に並んでいます。

前のカテゴリはtextmateです。

次のカテゴリはwindowsです。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type