single.php

TwitterOAuthを利用する際にFatal error: Uncaught Error: Class “Composer\CaBundle\CaBundle” not found in エラーの対処法

Twitter APIが更新されて、ブログの過去記事を自動的にツイートするPHPが使えなくなってしまったので、新しいAPIに乗せ換えた時にハマった点を備忘録的に投稿します。今回はTwitterOAuthライブラリを利用する際の Fatal error: Uncaught Error: Class “Composer\CaBundle\CaBundle” not found in の対処法です。

Composer CaBundle not found エラー

APIを利用する準備として、ツイッターのアカウントを開発者アカウントとして申請する必要があります。

Twitter APIを利用するには、先に開発者アカウントの申請が必要です。詳しい内容は別記事をご覧ください。

https://blog.janjan.net/2023/05/27/twitter-dev-account-sign-up-free-2023/

私の場合はTwitterOAuthライブラリを利用した際に、エラーになりました。

$apiKey = API_KEY;
$apiSecret = API_SECRET;
$accessToken = ACCESS_TOKEN;
$accessTokenSecret = ACCESS_TOKEN_SECRET;

require_once('vendor/autoload.php');
use Abraham\TwitterOAuth\TwitterOAuth;

$twitterOAuth = new TwitterOAuth($apiKey, $apiSecret, $accessToken, $accessTokenSecret);

PHPが出力したエラーは、こんな感じ。メッセージから、CaBundleクラスが見つからないという理由です。

composer.json を確認してみると、TwitterOAuthのバージョン1.2以上は必要なので、おそらく ca-bundle がインストールされていないのが原因です。

composer/ca-bundle(GitHub) には、ca-bundleがあるので、CloneしてPHP側でrequireすれば動作すると考えられます(未検証です。あしからず)

Composer/CaBundleのインストール

MixHostの場合、Composerがインストール済なので最新のTwitterOAuthライブラリをインストールすれば勝手にCaBundleも一緒にセットアップされます。

cPanelが使えるのであれば、次の手順で確認と更新が行えます。

1. cPanelの[詳細|Terminal]リンクをクリックします。

2. 表示された[Terminal]画面で、次のコマンドをい入力します。

[username@jp1 ~]$ composer -v

3. 下の画像のようなロゴが表示されればComposerがインストールされています。

4. TwitterOAuthをインストールする場所にカレントを合わせて、次のコマンドで更新を行います。

composer require abraham/twitteroauth

5. 最新のTwitterOAuthがコピーされ、必要なCaBundleもインストールが行われます。

再度、TwitterOAuthを利用してエラーが改善されているか確認します。

まとめ

Twitter APIを利用する際に、” Fatal error: Uncaught Error: Class “Composer\CaBundle\CaBundle” not found in ” が表示される場合には、TwitterOAuthライブラリのバージョンで外部依存ライブラリとしてCaBundleが必要な場合があります。

Composerが利用可能な環境であれば、最新のバージョンのTwitterOAuthに更新する必要があります。

TwitterOAuth を利用する際に” Fatal error: Uncaught Error: Class “Composer\CaBundle\CaBundle” not found in “が表示されて困っている人の参考になれば幸いです。

スポンサーリンク

最後までご覧いただき、ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です