目次
それは突然の話だった
2023年2月ごろにTwitterが有料化されるとの事でのんきに構えていたら、Twitter APIも有料化の波に…とはいえ実際にどうなるか不明だったので様子見してましたが4月になって突然ツイートできなくなる自体が発生
色々と調べていると「FREEプランにしないとダメ」「FREEプランは1アカウント1つまで」という事に
しかも「ツイートは1,500通/月まで」と中々厳しい締め付けが発生しており、色々と調査を行う必要に迫られました
さらばTwitter API v1.1
走行していると5月に入りついにTwitter APIのv1.1も終了。流石にプログラムの改修を行う必要があるので、色々と調べながら改修したのでまとめておきました。
今から実装する場合はこのやり方だけでいいかと思います。
v1.1からv2への変更手順
TwitterOAuthをアップデート
今使っているSDKが古かったので、まずはそれのアップデート
1 2 |
# composerでインストール composer require abraham/twitteroauth |
さくっと実装
1 2 3 4 5 6 7 8 |
// SDKの読み込み require_once "vendor/autoload.php"; use Abraham\TwitterOAuth\TwitterOAuth; $apiKey = "your_api_key"; $apiSecret = "your_api_secret"; $accessToken = "your_access_token"; $accessTokenSecret = "your_access_token_secret"; |
ここまでは前回と同じですね。
API v.1.1の場合
1 2 |
$connection = new TwitterOAuth($apiKey, $apiSecret, $accessToken, $accessTokenSecret); $result = $connection->post("statuses/update", ["status" => "ツイートします!"]); |
こんな感じで API statuses/update にデータを渡す感じでしたが、これがもう使えません
API v2の場合
どうするのかというと、以下の対応を行います。- v2で接続することを宣言
- API tweets にする
1 2 3 |
$connection = new TwitterOAuth($apiKey, $apiSecret, $accessToken, $accessTokenSecret); $connection->setApiVersion("2"); // v2であることを宣言 $result = $connection->post("tweets", ["text" => "ツイートします!"], true); |
こういうなります。
注意点は ツイートする文言をstatusで渡してましたが、textで渡すことと、$connection->post()の第2引数にtrueをつけることと、同じ文言を一定期間つぶやけないと言うことです。
これで今まで通り送れるはずですが、これでダメな場合はアカウントの設定かなという気がします。
今後はどうなるんだろう
とはいえFREEプランがいつまで使えるのか気になるところではあります。今のツイートやリツイート投稿はなんとかなりますが、例えばTwitterログイン機能は今後も今まで通り使えるのかや、FREEプランで事実上使えなくなったツイート検索機能など、中々予断を許さない状況なのも事実なので、今後も注力していきたいと思います。