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()」に直にセットしてもよいのですが、使い回しを考えると別の関数にしておいた方がよいと思います。

コメント

タイトルとURLをコピーしました