amazon

[PHP]Twitter に API経由で tweet する

はじめに

php の twitter ライブラリを用いて BOT を作成したので忘備録として記載します

準備

Twitter にアプリ登録

アプリの登録には以下の手順を行います。

  1. Twitter Developer Portal への登録
  2. Developer Portal でアプリの登録
  3. アプリのトークン取得

上記に流れに沿って記載します

開発者として登録

Twitter Developer Portal[1]から登録申請をします。

Twitter アプリの登録

Developer Portal のサイドメニュー「Projects & Apps」の「Create Apps」からアプリの登録を始めます。図1にProjects & Appsを開いた時の画面を示します。

アプリの登録
図1 アプリの登録

アプリ名を入力し、次に進みます。

アプリ名の登
図2 アプリ名の登録

トークンが表示されるのでどこかに保存してください

トークンの確認
図3 トークンの確認

登録できた場合、図4 のようにアプリの情報画面が表示されます

アプリの情報画面
図4 アプリの情報画面

アプリのトークンを取得

Twitter API を使うために以下4つの情報が必要です。

  • ①API_KEY
  • ②API_KEY_SECRET
  • ③ACCESS_TOKEN
  • ④ACCESS_TOKEN_SECRET

各値は図5 の キー管理画面から取得します。

①② は 図3 で保存した値または Consumer keys no の 「Regenerate」 から確認できます

③④は Access Token & Secret の「Generate」から取得できます

図5 キー管理画面
Generate した場合の画面
図6 Generate した場合の画面

twitter ライブラリの入手

abraham/twitteroauth[2] を使います。composer を使うので以下コマンドで入手できます

composer require abraham/twitteroauth

tweet するコード

require "vendor/autoload.php";

use Abraham\TwitterOAuth\TwitterOAuth;
$apiKey = ①API_KEY;
$apiSecret = ②API_KEY_SECRET;
$accessToken = ③ACCESS_TOKEN;
$accessTokenSecret = ④ACCESS_TOKEN_SECRET;

$tweetMessage = '🤖 昨日の「国際株式」分野の評価額だよ。
' . PHP_EOL . '平均評価額=14810円, 平均前日比=59円';
$connection = new TwitterOAuth($apiKey, $apiSecret, $accessToken, $accessTokenSecret);
$connection->setApiVersion("2");
$result = $connection->post("tweets", ["text" => $tweetMessage], true);

上記コードでメッセージを少し拡張したツイートを図7に示します

図7 ツイート例

まとめ

意外と簡単にTweetすることができましたね。

ツイートする中身を考える方が時間がかかりました。

参考

[1] Twitter Developer Porta, https://developer.twitter.com/en/portal/dashboard
[2] abraham/twitteroauth, https://github.com/abraham/twitteroauth

コメント

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

Fatal error: Uncaught JSMin_UnterminatedRegExpException: JSMin: Unterminated RegExp at byte 329: /^https?:\/\ in /bitnami/wordpress/wp-content/plugins/autoptimize/classes/external/php/jsmin.php:266 Stack trace: #0 /bitnami/wordpress/wp-content/plugins/autoptimize/classes/external/php/jsmin.php(152): JSMin->action() #1 /bitnami/wordpress/wp-content/plugins/autoptimize/classes/external/php/jsmin.php(86): JSMin->min() #2 /bitnami/wordpress/wp-content/plugins/autoptimize/classes/external/php/ao-minify-html.php(257): JSMin::minify() #3 [internal function]: AO_Minify_HTML->_removeScriptCB() #4 /bitnami/wordpress/wp-content/plugins/autoptimize/classes/external/php/ao-minify-html.php(108): preg_replace_callback() #5 /bitnami/wordpress/wp-content/plugins/autoptimize/classes/external/php/ao-minify-html.php(47): AO_Minify_HTML->process() #6 /bitnami/wordpress/wp-content/plugins/autoptimize/classes/autoptimizeHTML.php(105): AO_Minify_HTML::minify() #7 /bitnami/wordpress/wp-content/plugins/autoptimize/classes/autoptimizeMain.php(592): in /bitnami/wordpress/wp-content/plugins/autoptimize/classes/external/php/jsmin.php on line 266