目次
サンプル・プログラム:実行例
「ツイート」ボタンを押すと、ツイートし、結果メッセージが表示される。
サンプル・プログラム
oembedTwitter.php | サンプル・プログラム本体 |
pahooTwitterAPI.php | Twitter APIを利用するクラス pahooTwitterAPI。 使い方は「PHPでTwitterに投稿(ツイート)する」などを参照。include_path が通ったディレクトリに配置すること。 |
バージョン | 更新日 | 内容 |
---|---|---|
2.0.0 | 2023/07/17 | Twitter API v2対応 |
1.2 | 2022/01/10 | PHP8対応,リファラ・チェック改良 |
1.1 | 2018/12/30 | JavaScriptのコピー機能を pahooClipboard に変更 |
1.0 | 2017/04/22 |
バージョン | 更新日 | 内容 |
---|---|---|
5.5.0 | 2024/06/21 | TwitterOAuth 7.0.0 対応 |
5.4.0 | 2024/05/18 | twitter.com → x.com 変更対応 |
5.3.0 | 2023/08/15 | tweet3() -- メディアのシャフル機能 |
5.2.1 | 2023/07/22 | bug-fix |
5.2.0 | 2023/07/17 | oembed() v2対応 |
準備:pahooTwitterAPI クラス
11: //TwitterOAuth クラスをロードする.
12: $version = explode('.', phpversion());
13: if ($version[0] >= 8) {
14: require __DIR__ . '/vendor/autoload.php';
15: }
16: use Abraham\TwitterOAuth\TwitterOAuth;
17:
34: /**
35: * コンストラクタ
36: * @param なし
37: * @return なし
38: */
39: function __construct() {
40: $this->responses = array();
41: $this->webapi = '';
42: $this->error = FALSE;
43: $this->errmsg = '';
44: $this->errcode = 0;
45:
46: $this->connection = new TwitterOAuth($this->TWTR_CONSUMER_KEY, $this->TWTR_CONSUMER_SECRET, $this->TWTR_ACCESS_KEY, $this->TWTR_ACCESS_SECRET);
47: //v2使用を宣言
48: $this->connection->setApiVersion('2');
49: }
27: //OAuth用パラメータ
28: // https://apps.twitter.com/
29: var $TWTR_CONSUMER_KEY = '***************'; //Cunsumer key
30: var $TWTR_CONSUMER_SECRET = '***************'; //Consumer secret
31: var $TWTR_ACCESS_KEY = '***************'; //Access Token (oauth_token)
32: var $TWTR_ACCESS_SECRET = '***************'; //Access Token Secret (oauth_token_secret)
33:
事前にプログラムを登録しておく必要があり、その方法は「Twitter API - WebAPIの登録方法」を参照されたい。入手したパラメータを、上述の変数に代入しておくこと。
PHP の https対応
関数 phpinfo を使って、下図のように表示されればOK。
Windowsでは、phop.iniの下記の行を有効化する。
extension=php_openssl.dll
Linuxでは --with-openssl=/usr オプションを付けて再ビルドする。→OpenSSLインストール手順
これで準備は完了だ。
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を取得
1054: /**
1055: * ツイートの埋め込み用HTMLを取得する.
1056: * Tweetet API v2 を使用する.
1057: * @param string $url ツイートURL
1058: * @param int $width フレームの最大横幅(ピクセル)
1059: * @param bool $script JavaScriptを追加するか否か
1060: * @return string HTML/FALSE:取得失敗
1061: */
1062: function oembed($url, $width, $script) {
1063: //リクエストURL(認証不要)
1064: $this->webapi = 'https://publish.twitter.com/oembed';
1065: $request = $this->webapi . '?lang=ja&url=' . urlencode($url) . '&maxwidth=' . $width . '&omit_script=' . ($script ? '1' : '0');
1066: $json = file_get_contents($request, 'r');
1067: $res = FALSE;
1068: if ($json != FALSE) {
1069: $items = json_decode($json);
1070: $res = $items->html;
1071: }
1072: return $res;
1073: }
参考サイト
- API Overview:Twitter公式
- PHPでTwitterに投稿する:ぱふぅ家のホームページ
- PHPでTwitterに画像付きメッセージ投稿:ぱふぅ家のホームページ
- PHPでツイートの埋め込み用HTMLを取得:ぱふぅ家のホームページ
イーロン・マスク氏に買収されたTwitterは多くのAPIの使用制限が厳格化されたが、今回使うAPIは逆に、認証不要で利用できるようになった。
(2024年6月21日)TwitterOAuth 7.0.0 対応
(2024年5月18日)ドメイン変更 twitter.com → x.com に対応
(2023年6月17日)Twitter API v2対応