横浜で営業している個人事業主です。ホームページ制作、システム構築、ページ修正などお気軽にお問い合わせください。

さくらインターネットでTwitter API v2を使ってツイート

Twitter社の仕様変更により、これまで使用できていたTwitter API 1.0によるツイートができなくなってしまいした。川柳投稿まるせんでも使用しているさくらインターネットの環境にて、Twitter API v2によるツイートが行えるように対応をいたしました。使用言語はPHPです。

さくらインターネットでTwitter API v2を使うためには

さくらインターネットでTwitter API v2を使うためには、いくつかの前提条件があります。

PHP8.0にする必要がある

最新のTwitterOAuthを入れる必要がある

PHP8.0にする

PHPのバージョンを変更したい | さくらのサポート情報
【最終更新日:2023年12月18日】このマニュアルでは、PHPのバージョンを変更についてご案内しています。前提条件PH...

最新のTwitterOAuthライブラリはPHPのバージョンが8以上が求められています。さくらインターネットのサーバーコントロールパネルから、PHPのバージョンを変更することができます。

最新のTwitterOAuthを入れる

さくらインターネットに、まずComposerをインストールし、これを使って最新のTwitterOAuthライブラリをインストールします。

Composerのインストール

さくらレンタルサーバーにComposerをインストールする方法|Koushi Kagawa
現在さくらレンタルサーバーにDrupalをインストールして運用しているのですが、そこでComposerを利用する機会があ...

こちらのnote記事を参考にインストールしました。手順通りで特に問題はありませんでした。

インストール場所は、/home/アカウント名/にしました。

最新のTwitterOAuthを入れる

TwitterOAuthを利用する際にFatal error: Uncaught Error: Class “Composer\CaBundle\CaBundle” not found in エラーの対処法
Twitter APIが更新されて、ブログの過去記事を自動的にツイートするPHPが使えなくなってしまったので、…

参考にした記事には、

composer require abraham/twitteroauth

というコマンドが掲載されていますが、パスの関係で実際には下記のようなコードで実行。

php composer.phar require abraham/twitteroauth

インストール場所は同じく、/home/アカウント名/です。

Twitter API v2を使うための記述

【PHP】Twitter API v2を使ってツイートする | いざどりのtrial and error
こちらの記事では、PythonとTweepyを使ってTwitter API v2でツイートする方法を紹介しました。この記...

Twitter API v2を使うためには、いくつかの記述に変更を加える必要があります。

ひとつは、v2を宣言すること。

$connection->setApiVersion("2");

もう一つは、ツイート時の命令、データがjsonになった、などの変更に対応することです。

$result = $connection->post("tweets", ["text" => "API v2のテスト"], true);

Composer CaBundle not found エラーの対応

先ほど参考にしたサイトによると、これらの更新で「Fatal error: Uncaught Error: Class “Composer\CaBundle\CaBundle” not found」のエラーが出なくなるということでしたが、更新後も相変わらずこのエラーによりツイートできない状態のまま。

TwitterOAuthを最新に更新した際に一緒にインストールされていたca-bundleが認識されていないのだと思い、該当しそうなところに対応したところ、エラーが消え、ツイートも行えるようになりました。

対象ファイル:
/home/(アカウント名)/vendor/abraham/twitteroauth/src/TwitterOAuth.php
20行目あたり

require "/home/(アカウント名)/vendor/autoload.php"; // この行を追加
use Composer\CaBundle\CaBundle;

おわりに

さくらインターネットのすべての環境に対応できるかどうかは分かりませんので、ひとつの方法として参考にしていただければと思います。ご自身の環境における作業につきましては、ご自身の責任のもと行ってください。

上記はTwitter Developer Platformにおいて適切にプロジェクトやアプリを作ってある前提です。かなり以前に作ったアプリはv1.0にしか対応していなかったようで、いったん削除をして新しく作り直してみたところ問題なく動作しました。

Twitter Developer Platformでは、無料プランを使用しています。Appは1つまで、ツイート数は月間1,500件となっています。

コメント

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