先日、PHPを使ってはてなハイクに投稿する方法を書きましたが、Twitterに投稿する方法も書いておきます。
詳しくはPHP+OAuthでTwitter - SDN Project(リンク切れ)に書かれています。ありがとうございました。
準備
「OAuth.php」と「twitteroauth.php」が必要になります。abraham/twitteroauth - GitHubからダウンロードします。
以下に書くコードと同じフォルダに入れておきます。
サンプル
$st="投稿の本文";
twitterPost($st);
ツイートする内容をセットして実行します。
ボットにする場合はこの辺りを改造します。
function twitterPost
($st){
require_once("twitteroauth.php");
$to=make_oauth_object
();
$url="https://twitter.com/statuses/update.xml";
$result = $to->OAuthRequest($url,"POST",array("status"=>$st));
header("Content-Type: application/xml");
echo $result;
}
実際に投稿する部分です。
「$url」などを書き換えると、フォローしたりファボったりする関数に書き換えられます。
function make_oauth_object(){
$consumer_key = "{Consumer keyの値}";
$consumer_secret = "{Consumer secretの値}";
$access_token = "{Access Tokenの値}";
$access_token_secret = "{Access Token Secretの値}";
$to = new TwitterOAuth(
$consumer_key,
$consumer_secret,
$access_token,
$access_token_secret);
return($to);
}
OAuth認証の部分です。
OAuth認証
TwitterはOAuth認証を使います(はてなハイクはベーシック認証)。
この手続きが面倒なところですが、一度やればすぐに分かると思います。
https://twitter.com/oauth_clientsで登録して、「Consumer keyの値」「Consumer secretの値」「Access Tokenの値」「Access Token Secretの値」を入手します。
これを上のコードの該当箇所にセットしてください。
ちょっと書き換えて「twitterPost()」に直にセットしてもよいのですが、使い回しを考えると別の関数にしておいた方がよいと思います。
Twitterの自分のツイートを記録してブログ風に表示できるページを作っています。
スタニッキ
TwitterのAPIを使い、JSON形式で取得し、PHPでMySQLに保存します。
最近、これが正しく動作しなくなりました。
Twitterは各ツイートにidが付けられていますが、このidが桁落ちします。Twitterのidは16桁あるのですが、私のプログラムでは有効なのは上12桁だけで下4桁が「0000」になってしまいます。 (さらに…)
Twitterで使えるハッシュフラッグをGoogle日本語入力で簡単に使えるようにテキストファイルを作り辞書に登録できるようにしました。
hashflag.txt
ご自分のパソコンに保存し登録してください。
詳しい登録の方法は割愛します。
例えば「たぐわーるどかっぷ」ならば「#worldcup」が、「たぐにほん」ならば「#jpn」が候補に現れます。
オランダは「#ned」ですよ。
Twitterにはワールドカップのためにハッシュフラッグという仕組みがあります。
#jpnなどと書くと自動的にワールドカップ出場国の国旗が表示されます。
iPhoneでこのハッシュフラッグを入力するのは面倒なので連絡先に登録する方法を考えました。
hashflag
上のファイルを自分のパソコンに保存します。
メールにこのファイルを添付しiPhoneに送信します。
iPhoneでこのファイルを開きます。
連絡先に登録します。
ふりがなを「んたぐあめりか」のように「んたぐ」+国名としてあります。気に入らなければ「んたぐ」を削除してください。
これで簡単にハッシュフラッグを入力することができます。
「あなたはどれほどTwitterに夢中か?」を調べるサイトを見つけました。
How addicted to Twitter are you? Quiz - The Oatmeal
16個の質問に答えるとTwitter中毒度を判定してくれます。
私の場合は69%でした。他人と比較してみないとどれほどなのか分かりませんが、高いのだと思います。
自分のウェブサイトのタイトルとURLをTwitterに投稿するための「リンク」は次のように書きます。
<a href="javascript:(function(){window.open('http://twitter.com/home/?status=' + '〈' + document.title + '〉' + document.location.href)})()">Twitterに投稿</a>
そして、この「リンク」を右クリックしてブックマークに登録するとブックマークレットになります。この場合は自分のウェブサイトでなくても使えます。
Twitterに投稿
私はTwitterをやっています。
過去の投稿をブログ風にまとめるページを作ってみました。
スタニッキ(stabucky's twitter)
TwitterのAPIを使って発言すべてをMySQLに取り込み、そこにクエリーを送ってデータを取得しています。
これを利用して体重グラフを自動的に作成するコードを埋め込んでいます。
他にもTwitterを活用する方法はないか、考えています。
小遣い帳なんてどうでしょう?
同じ発想でTwilogというサービスがあります。これは誰でも利用できます。最初の取得発言数の上限が3,200件。今、私の発言数は3,480件でちょうど、越えたところ。残念。 (さらに…)
Twitterの日付形式をExcelのシリアル値に変換する、VBAのコードです。 (さらに…)
Twitterで「iPhoneでPicasaWebの画像が保存できない」というつぶやきがあり、「そんなはずはないだろう」と思い、やってみると確かにできませんでした。
iPhoneでは通常は画像をしばらく押していると、その画像を保存するオプションが表示されるのですが、PicasaWebではそれが出ません。
JavaScriptか何かで画像を押したときに別の動きをするように仕組まれているようです。
そこで「HTMLを解析して最初に登場する画像のURLを拾い、それをSafariで直に表示する」というブックマークレットを作りました。
これはこれですぐにできたのですが、肝心のPicasaWebで実行するとうまくいきません。
表示したい画像の前にアイコンか何かの画像データがあるためにそちらを拾ってしまうようです。
それで諦めかけたところ、Twitterで同じ人が「ブックマークレットでできた。ただし最初に拡大表示」というつぶやきをしていました。
「まあ、できたのならば、それでいいか」とも思いましたが、「途中まで成功しているので、自分なりの方法を完成させたい」と再度チャレンジ。
同じように「最初に拡大表示」をしてから、ブックマークレットを実行すると成功しました。
このブックマークレットは下のページにあります。iPhone専用です。
bookmarklet for iPhone
下はPicasaWebの画面ですが、赤で囲んだボタンを押してから、ブックマークレットを実行します。
このブックマークレットは「そのページにある画像すべて」を表示します。
私の作ったブックマークレットは「そのページにある最初の画像のみ」を表示します。
すべて表示する方が確実なのは間違いないでしょう。
タモリの名言が読めるTwitterアカウントです。 (さらに…)