PHPでTwitterに投稿する方法

先日、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のidを取得するときは「id_str」

Twitterの自分のツイートを記録してブログ風に表示できるページを作っています。

スタニッキ

TwitterのAPIを使い、JSON形式で取得し、PHPでMySQLに保存します。
最近、これが正しく動作しなくなりました。
Twitterは各ツイートにidが付けられていますが、このidが桁落ちします。Twitterのidは16桁あるのですが、私のプログラムでは有効なのは上12桁だけで下4桁が「0000」になってしまいます。 (さらに…)

Google日本語入力用ハッシュフラッグ辞書

Twitterで使えるハッシュフラッグをGoogle日本語入力で簡単に使えるようにテキストファイルを作り辞書に登録できるようにしました。

hashflag.txt

ご自分のパソコンに保存し登録してください。
詳しい登録の方法は割愛します。

例えば「たぐわーるどかっぷ」ならば「#worldcup」が、「たぐにほん」ならば「#jpn」が候補に現れます。
オランダは「#ned」ですよ。

ハッシュフラッグをiPhoneで使う

Twitterにはワールドカップのためにハッシュフラッグという仕組みがあります。
#jpnなどと書くと自動的にワールドカップ出場国の国旗が表示されます。

iPhoneでこのハッシュフラッグを入力するのは面倒なので連絡先に登録する方法を考えました。

hashflag

上のファイルを自分のパソコンに保存します。
メールにこのファイルを添付しiPhoneに送信します。
iPhoneでこのファイルを開きます。
連絡先に登録します。

ふりがなを「んたぐあめりか」のように「んたぐ」+国名としてあります。気に入らなければ「んたぐ」を削除してください。
これで簡単にハッシュフラッグを入力することができます。

Twitter中毒度は69%「How addicted to Twitter are you?」

「あなたはどれほどTwitterに夢中か?」を調べるサイトを見つけました。

How addicted to Twitter are you? Quiz - The Oatmeal

16個の質問に答えるとTwitter中毒度を判定してくれます。

私の場合は69%でした。他人と比較してみないとどれほどなのか分かりませんが、高いのだと思います。

「Twitterに投稿」用のリンクとブックマークレット

自分のウェブサイトのタイトルとURLをTwitterに投稿するための「リンク」は次のように書きます。

<a href="javascript:(function(){window.open('http://twitter.com/home/?status=' + '〈' + document.title + '〉' + document.location.href)})()">Twitterに投稿</a>

そして、この「リンク」を右クリックしてブックマークに登録するとブックマークレットになります。この場合は自分のウェブサイトでなくても使えます。

Twitterに投稿

Twitterの過去の投稿をまとめたページ

私はTwitterをやっています。
過去の投稿をブログ風にまとめるページを作ってみました。

スタニッキ(stabucky's twitter)

TwitterのAPIを使って発言すべてをMySQLに取り込み、そこにクエリーを送ってデータを取得しています。

これを利用して体重グラフを自動的に作成するコードを埋め込んでいます。
他にもTwitterを活用する方法はないか、考えています。
小遣い帳なんてどうでしょう?

同じ発想でTwilogというサービスがあります。これは誰でも利用できます。最初の取得発言数の上限が3,200件。今、私の発言数は3,480件でちょうど、越えたところ。残念。 (さらに…)

Twitterの日付形式をExcelのシリアル値に変換

Twitterの日付形式をExcelのシリアル値に変換する、VBAのコードです。 (さらに…)

iPhoneでPicasaWebの画像を保存する方法

Twitterで「iPhoneでPicasaWebの画像が保存できない」というつぶやきがあり、「そんなはずはないだろう」と思い、やってみると確かにできませんでした。
iPhoneでは通常は画像をしばらく押していると、その画像を保存するオプションが表示されるのですが、PicasaWebではそれが出ません。
JavaScriptか何かで画像を押したときに別の動きをするように仕組まれているようです。

そこで「HTMLを解析して最初に登場する画像のURLを拾い、それをSafariで直に表示する」というブックマークレットを作りました。
これはこれですぐにできたのですが、肝心のPicasaWebで実行するとうまくいきません。
表示したい画像の前にアイコンか何かの画像データがあるためにそちらを拾ってしまうようです。

それで諦めかけたところ、Twitterで同じ人が「ブックマークレットでできた。ただし最初に拡大表示」というつぶやきをしていました。
「まあ、できたのならば、それでいいか」とも思いましたが、「途中まで成功しているので、自分なりの方法を完成させたい」と再度チャレンジ。

同じように「最初に拡大表示」をしてから、ブックマークレットを実行すると成功しました。


このブックマークレットは下のページにあります。iPhone専用です。

bookmarklet for iPhone

下はPicasaWebの画面ですが、赤で囲んだボタンを押してから、ブックマークレットを実行します。

このブックマークレットは「そのページにある画像すべて」を表示します。
私の作ったブックマークレットは「そのページにある最初の画像のみ」を表示します。
すべて表示する方が確実なのは間違いないでしょう。

タモリの名言が読めるTwitter

タモリの名言が読めるTwitterアカウントです。 (さらに…)

新しい記事 | 古い記事

タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報