OAuth認証使ってPHPでツイッターbotを作成する方法【最初の一歩】

  • 投稿者:  カテゴリ:twitter
  • 表示回数 4,859
ツイッターAPIのベーシック認証は2010/6/30で終了するそうです。
ベーシック認証を使っているbotやその他アプリは、

OAuth認証

に切り替える必要があります!


 

本件は私にも火の粉がかかっているので避けて通れません。
かといってOAuthが何かはっきり知らないし、やったこともないので、最初の一歩として「にゃーにゃーにゃー」とツイートするだけのbotを作って手順をまとめてみました。新しい言語を学ぶときの Hello World みたいなものですねー。



◇ 前提環境 ◇◇


(1) PHP5以上・・・下記は確認方法

php --version
PHP 5.2.11 (cli) (built: Sep 21 2009 14:49:09)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies

(2) curlがPHPで使えること・・・下記は確認方法

$ php -i | grep cURL
cURL support => enabled
cURL Information => libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5




◇ 手順 


(1) bot用のアカウントでツイッターにログイン

(2) http://dev.twitter.com/apps/ にアクセス

(3) 「新しいアプリケーションを登録する」をクリック
   (3-1)  最低下記3つを入力
        ・ アプリケーション名・・・・・例えば「にゃにゃにゃー
        ・ アプリケーションの説明
        ・ アプリケーションのウェブサイトURL
   (3-2) アプリケーションの種類を選択
        今回はbotなので、「クライアントアプリケーション」を選択
   (3-3) Default Access typeを選択
        今回は投稿botなので「Read & Write」を選択

(4) 下記4種類のキーの値を控える
    ・ Consumer key
    ・ Consumer secret
    ・ Access Token (oauth_token)
    ・ Access Token Secret (oauth_token_secret)

(5) PHP用のOAuthプログラムを下記からダウンロード
    http://github.com/abraham/twitteroauth/downloads
    ※現時点で最新の 0.2.0-beta3 をダウンロードして解凍しておく

(6) PHPのコードを書く  ※今回はnyabot.phpという名前で保存
<?php
// ライブラリインクルード
require_once("twitteroauth.php");

// キー値の設定 ※手順(4)で控えた値を書く
$consumer_key = "内緒♪";
$consumer_secret = "内緒♪";
$access_token = "内緒♪";
$access_token_secret = "内緒♪";

// OAuthオブジェクト生成 (1行で)
$to = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret);

// メッセージ設定
$message = "にゃーにゃーにゃー  " . date("H時i分s秒", time());

// ツイート実行 (1行で)
$to->OAuthRequest("https://twitter.com/statuses/update.xml","POST",array("status"=>"' . $message . '"));
?>      

(7) ファイルの配置
同一ディレクトリ内に下記3つのファイルを置きます
  ・ OAuth.php   ・・・・・・・・・・手順5で取得したファイル
  ・ twitteroauth.php ・・・・・・手順5で取得したファイル
  ・ nyabot.php  ・・・・・・・・・・手順6で作ったファイル

(8) botの実行!(テストとしてとりあえず手動で)
php nyabot.php

(9) ツイッターの画面で確認


※アプリケーション名に注目!ベーシック認証でのbotだと「APIから」というふうに固定でしたが、OAuth認証でのbotだとこの部分を好きなのにできます。