(2025年8月22日).pahooEnv 導入
目次
サンプル・プログラム:実行例
「ツイート」ボタンを押すと、ツイートし、結果メッセージが表示される。
サンプル・プログラム
| oembedTwitter.php | サンプル・プログラム本体 |
| pahooTwitterAPI.php | Twitter APIに関わるクラス pahooTwitterAPI。 使い方は「PHPでTwitterに投稿(ツイート)する」などを参照。include_path が通ったディレクトリに配置すること。 |
| pahooInputData.php | データ入力に関わる関数群。 使い方は「数値入力とバリデーション」「文字入力とバリデーション」などを参照。include_path が通ったディレクトリに配置すること。 |
| バージョン | 更新日 | 内容 |
|---|---|---|
| 5.2.0 | 2025/08/22 | .pahooEnv 導入 |
| 5.1.0 | 2024/05/18 | twitter.com → x.com 変更対応 |
| 5.0.0 | 2023/07/02 | Twitter API v2対応 |
| 4.1 | 2022/01/04 | PHP8対応,リファラ・チェック改良 |
| 4.0 | 2016/02/11 | pahooTwitterAPIクラスを分離 |
| バージョン | 更新日 | 内容 |
|---|---|---|
| 5.6.1 | 2025/11/30 | PHP8.5対応:curl_closeを使わないようにした |
| 5.6.0 | 2025/08/13 | .pahooEnv導入 |
| 5.5.1 | 2024/11/23 | __construct() -- PHP8.4における応急処置 |
| 5.5.0 | 2024/06/21 | TwitterOAuth 7.0.0 対応 |
| 5.4.0 | 2024/05/18 | twitter.com → x.com 変更対応 |
| バージョン | 更新日 | 内容 |
|---|---|---|
| 2.0.1 | 2025/08/11 | getParam() bug-fix |
| 2.0.0 | 2025/08/11 | pahooLoadEnv() 追加 |
| 1.9.0 | 2025/07/26 | getParam() 引数に$trim追加 |
| 1.8.1 | 2025/03/15 | validRegexPattern() debug |
| 1.8.0 | 2024/11/12 | validRegexPattern() 追加 |
準備:PHP の https対応
Windowsでは、"php.ini" の下記の行を有効化する。
extension=php_openssl.dllLinuxでは --with-openssl=/usr オプションを付けて再ビルドする。→OpenSSLインストール手順
これで準備は完了だ。
準備:pahooInputData 関数群
また、各種クラウドサービスに登録したときに取得するアカウント情報、アプリケーションパスワードなどを登録した .pahooEnv ファイルから読み込む関数 pahooLoadEnv を備えている。こちらについては、「各種クラウド連携サービス(WebAPI)の登録方法」をご覧いただきたい。
準備:pahooTwitterAPI クラス
pahooTwitterAPI.php
11: // TwitterOAuth クラスをロードする.
12: $version = explode('.', phpversion());
13: if ($version[0] >= 8) {
14: require __DIR__ . '/vendor/autoload.php';
15: }
16: use Abraham\TwitterOAuth\TwitterOAuth;
17:
「Twitter API」を利用するために、API key、API key secret、Access Token、Access Token secret が必要で、入手方法は「Twitter API - WebAPIの登録方法」を参照されたい。
PHPのクラスについては「PHPでクラスを使ってテキストの読みやすさを調べる」を参照されたい。
OAuth認証 および Twitter API へのアクセスには、TwitterOAuth を利用する。導入方法は公式サイトにあるように composer を使うことを推奨している。
⚠ TwitterOAuth 8.1.0 は、2025年(令和7年)11月20日にリリースされた PHP 8.5 に対応している。
TwitterOAuth クラスをロードする。composer でインストールされたフォルダ "\vendor" を "pahooTwitterAPI.php" と同じフォルダへコピーすること。
pahooTwitterAPI.php
37: /**
38: * コンストラクタ
39: * @param なし
40: * @return なし
41: */
42: function __construct() {
43: if (isset($_ENV['PAHOO_TWTR_CONSUMER_KEY'])) {
44: $this->TWTR_CONSUMER_KEY = $_ENV['PAHOO_TWTR_CONSUMER_KEY'];
45: }
46: if (isset($_ENV['PAHOO_TWTR_CONSUMER_SECRET'])) {
47: $this->TWTR_CONSUMER_SECRET = $_ENV['PAHOO_TWTR_CONSUMER_SECRET'];
48: }
49: if (isset($_ENV['PAHOO_TWTR_ACCESS_KEY'])) {
50: $this->TWTR_ACCESS_KEY = $_ENV['PAHOO_TWTR_ACCESS_KEY'];
51: }
52: if (isset($_ENV['PAHOO_TWTR_ACCESS_SECRET'])) {
53: $this->TWTR_ACCESS_SECRET = $_ENV['PAHOO_TWTR_ACCESS_SECRET'];
54: }
55:
56: // プロパティを初期化する.
57: $this->responses = array();
58: $this->webapi = '';
59: $this->error = FALSE;
60: $this->errmsg = '';
61: $this->errcode = 0;
62:
63: $this->connection = new TwitterOAuth($this->TWTR_CONSUMER_KEY, $this->TWTR_CONSUMER_SECRET, $this->TWTR_ACCESS_KEY, $this->TWTR_ACCESS_SECRET);
64: // v2使用を宣言
65: $this->connection->setApiVersion('2');
66:
67: // PHP8.4で暗黙的にnullableを指定することが非推奨になったため
68: // TwitterOAuthが対応するまでの応急処置
69: error_reporting(E_ALL & ~E_DEPRECATED & ~E_USER_DEPRECATED);
70: }
pahooTwitterAPI.php
30: // OAuth用パラメータ
31: // https://apps.twitter.com/
32: public $TWTR_CONSUMER_KEY = ''; // Cunsumer key
33: public $TWTR_CONSUMER_SECRET = ''; // Consumer secret
34: public $TWTR_ACCESS_KEY = ''; // Access Token (oauth_token)
35: public $TWTR_ACCESS_SECRET = ''; // Access Token Secret (oauth_token_secret)
36:
事前にプログラムを登録しておく必要があり、その方法は「Twitter API - WebAPIの登録方法」を参照されたい。入手したパラメータを、上述の変数に代入しておくこと。
Twitter API:GET statuses/oembed
| URL |
|---|
| https://publish.twitter.com/oembed |
| フィールド名 | 要否 | 内 容 |
|---|---|---|
| url | 必須 | 対象ツイートのURL |
| maxwidth | 任意 | フレームの最大横幅ピクセル値で指定する。pxは不要。180〜1200の間で指定可能。デフォルトは300。 |
| maxheight | 任意 | フレームの最大高さピクセル値で指定する。pxは不要。200以上を指定する。デフォルトは400。 |
| limit | 任意 | 表示するアイテム数を1から20の間で指定する。デフォルトは6。。 |
| lang | 任意 | 表示言語。デフォルトはes(英語)。日本語はja。 |
| theme | 任意 | darkを指定するとダークモードで表示する。 |
解説:埋め込み用HTMLを取得
pahooTwitterAPI.php
1055: /**
1056: * ツイートの埋め込み用HTMLを取得する.
1057: * Tweetet API v2 を使用する.
1058: * @param string $url ツイートURL
1059: * @param int $width フレームの最大横幅(ピクセル)
1060: * @param bool $script JavaScriptを追加するか否か
1061: * @return string HTML/FALSE:取得失敗
1062: */
1063: function oembed($url, $width, $script) {
1064: //リクエストURL(認証不要)
1065: $this->webapi = 'https://publish.twitter.com/oembed';
1066: $request = $this->webapi . '?lang=ja&url=' . urlencode($url) . '&maxwidth=' . $width . '&omit_script=' . ($script ? '1' : '0');
1067: $json = file_get_contents($request, 'r');
1068: $res = FALSE;
1069: if ($json != FALSE) {
1070: $items = json_decode($json);
1071: $res = $items->html;
1072: }
1073: return $res;
1074: }
参考サイト
- API Overview:Twitter公式
- PHPでTwitterに投稿する:ぱふぅ家のホームページ
- PHPでTwitterに画像付きメッセージ投稿:ぱふぅ家のホームページ
- PHPでツイートの埋め込み用HTMLを取得:ぱふぅ家のホームページ

イーロン・マスク氏に買収されたTwitterは多くのAPIの使用制限が厳格化されたが、今回使うAPIは逆に、認証不要で利用できるようになった。