Twitter APIが更新されて、ブログの過去記事を自動的にツイートするPHPが使えなくなってしまったので、新しいAPIに乗せ換えた時にハマった点を備忘録的に投稿します。今回はTwitterOAuthライブラリを利用する際の Fatal error: Uncaught Error: Class “Composer\CaBundle\CaBundle” not found in の対処法です。
Composer CaBundle not found エラー
APIを利用する準備として、ツイッターのアカウントを開発者アカウントとして申請する必要があります。
Twitter APIを利用するには、先に開発者アカウントの申請が必要です。詳しい内容は別記事をご覧ください。
私の場合は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 “が表示されて困っている人の参考になれば幸いです。
スポンサーリンク
最後までご覧いただき、ありがとうございます。