PHPでTwitterのツイートをする/ツイート一覧を取得する/検索する(API v1.1)

2013年6月11日でTwitter APIのv1は使用できなくなり、使用できるのはv1.1となっています。
v1ではxml形式のレスポンスが使用できましたが、v1.1ではJSON形式のみです。
[参考記事] PHPでTwitterのbotを作る方法 ツイートをする/ツイート一覧を取得する v1
[参考記事] TwitterでURL付ツイートをするとアクセスしてくるボットの一覧
[参考記事] HEADリクエストを排除してサーバ負荷を軽減させる

TwitterのAPIを使用するには、OAuthによる認証方式を使用します。

PHPでTwitterのツイートをする
PHPでTwitterのツイート一覧を取得する
PHPでTwitterのツイートを検索する
Twitterのレスポンス(戻り値)を扱う方法
twitteroauth.phpでrequire_onceのエラーが出る場合

Twitter APIに接続するライブラリは、Abraham Williams氏のtwitteroauthにあるコードを使用すると実装が楽です。

abraham/twitteroauth GitHub
The first PHP Library to support OAuth for Twitter's REST API



ここからtwitteroauthをダウンロードします。
このファイルを解凍し、twitteroauthフォルダ内のファイルを使用します。
OAuth.php
twitteroauth.php

[参考記事] Twitter APIを使用する (Twitterアプリケーション登録)

Twitterの開発用サイトでアプリケーションを登録して、
Consumer key、Consumer secret、Access Token、Access Token Secret
を取得します。

サンプルファイルは次のように配置します。

twitteroauth
│├ twitteroauth.php
│└ OAuth.php
└ 【作成したPHPファイル】

PHPでTwitterのツイートをする

APIに送る値はUTF-8で送信します。

// ツイート内容
$status = "つぶやき";

require_once("twitteroauth".DIRECTORY_SEPARATOR."twitteroauth.php");

// Consumer keyの値
$consumer_key = "consumer_key";
// Consumer secretの値
$consumer_secret = "consumer_secret";
// Access Tokenの値
$access_token = "access_token";
// Access Token Secretの値
$access_token_secret = "access_token_secret";
 
// OAuthオブジェクト生成
$twitterOauth = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret);
$ret = $twitterOauth->OAuthRequest("https://api.twitter.com/1.1/statuses/update.json","POST",array("status"=>$status));

TwitterでURL付ツイートをするとボットがアクセスしてきます。
場合によってはサーバ負荷が大きくなるのでボット対策が必要になることがあります。
[参考記事] TwitterでURL付ツイートをするとアクセスしてくるボットの一覧
[参考記事] HEADリクエストを排除してサーバ負荷を軽減させる
[参考記事] ログをリアルタイムに表示させて監視する方法

PHPでTwitterのツイート一覧を取得する

//twitterID
$screen_name = 'pentan_info';

require_once("twitteroauth".DIRECTORY_SEPARATOR."twitteroauth.php");

// Consumer keyの値
$consumer_key = "consumer_key";
// Consumer secretの値
$consumer_secret = "consumer_secret";
// Access Tokenの値
$access_token = "access_token";
// Access Token Secretの値
$access_token_secret = "access_token_secret";
 
// OAuthオブジェクト生成
$twitterOauth = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret);
$ret = $twitterOauth->OAuthRequest("https://api.twitter.com/1.1/statuses/user_timeline.json","GET",array("screen_name"=>$screen_name));

PHPでTwitterのツイートを検索する

//twitterID
$keyword = '探す文字列';

require_once("twitteroauth".DIRECTORY_SEPARATOR."twitteroauth.php");

// Consumer keyの値
$consumer_key = "consumer_key";
// Consumer secretの値
$consumer_secret = "consumer_secret";
// Access Tokenの値
$access_token = "access_token";
// Access Token Secretの値
$access_token_secret = "access_token_secret";
 
// OAuthオブジェクト生成
$twitterOauth = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret);
$ret = $twitterOauth->OAuthRequest("https://api.twitter.com/1.1/search/tweets.json","GET",array("q"=>$keyword));

Twitterのレスポンス(戻り値)を扱う方法

TwitterのレスポンスはJSON形式になります。
PHPではJSONをオブジェクトに変換する関数json_decodeがあります。

$obj = json_decode($req);

オブジェクトからさらに配列にする場合には
[参考記事] オブジェクト(Object)を配列(Array)に変換する方法

twitteroauth.phpでrequire_onceのエラーが出る場合

twitteroauth.phpの10行目require_onceで次のようなエラーが出る場合には

Warning: require_once(OAuth.php): failed to open stream: No such file or directory in 〜〜twitteroauth.php on line 10
Fatal error: require_once(): Failed opening required 'OAuth.php' in  〜〜twitteroauth.php on line 10

呼び出し元のphpにインクルードパスを指定するか、twitteroauth.phpの10行目を書き換えます。
一般的には配布されているファイルを書き換えないほうがいいです。
(バージョン変更のときに上書きしても動作するように)

set_include_path(get_include_path() .PATH_SEPARATOR. dirname(__FILE__).DIRECTORY_SEPARATOR."twitteroauth");

または

require_once('OAuth.php');
  ↓
require_once(dirname(__FILE__).DIRECTORY_SEPARATOR."OAuth.php");

関連記事

スポンサーリンク

ユーザ会の一覧

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る