質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1399閲覧

Class "LINE\LINEBot\HTTPClient\CurlHTTPClient" not found エラー

hiviyan

総合スコア22

LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2023/06/10 04:32

実現したいこと

Class "LINE\LINEBot\HTTPClient\CurlHTTPClient" not found を解決したい。

前提

以下を参考にして、LINEとの連携をLaravelで開発しております。

https://www.fourier.jp/techblog/articles/laravel-line-messaging-api/

設定は一通り終わったのですが、なぜか、CurlHTTPClientのコードを参照ができず、以下のエラーが表示されます。

Class "LINE\LINEBot\HTTPClient\CurlHTTPClient" not found

composer require linecorp/line-bot-sdkを既に走らせており、composer.jsonにはバージョンは8と表示されております。

同じエラーが出た方はいらっしゃいますでしょうか?

よろしくお願いいたします。

発生している問題・エラーメッセージ

Class "LINE\LINEBot\HTTPClient\CurlHTTPClient" not found

該当のソースコード

PHP

1<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Http\Request; 6use App\Http\Controllers\Controller; 7use App\Services\LineBotService as LINEBot; 8use LINE\LINEBot\HTTPClient\CurlHTTPClient; 9 10class LineWebhookController extends Controller 11{ 12 public function message(Request $request) 13 { 14 $data = $request->all(); 15 $events = $data['events']; 16 17 $httpClient = new CurlHTTPClient('XXXXXXXXXXXX'); //ここでエラー発生 18 $bot = new LINEBot($httpClient, ['channelSecret' => 'XXXXXXXXXXXXXXXXXXXX']); 19 20 foreach ($events as $event) { 21 $response = $bot->replyText($event['replyToken'], 'メッセージ送信完了'); 22 } 23 return; 24 }

試したこと

composer require linecorp/line-bot-sdk

composer update

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

linebot-sdk-php は 8.0.0からディレクトリ構成が大幅に変わっている

バージョン8には、LINEディレクトリの下にLINEBotディレクトリがない。
だからそのエラーが発生してる。

質問文にあるコードは、おそらくバージョン7以前用のコード。
なので、インストールするlinebot-sdk-phpを7以前に固定するか、
今のコードをバージョン8用に変える。

公式のドキュメントを見たら

$client = new \GuzzleHttp\Client();

というコードスニペットがあるから、これを使えばいいんじゃないかな?まあ質問のコードの部分以外にも修正しなきゃいけないところはあるだろうけど・・・

動作環境を記載してないサイト/ろくに更新してないサイトは、あんま参考にしない方がいいよ。

投稿2023/06/10 05:31

編集2023/06/10 05:41
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hiviyan

2023/06/10 05:52

ご返信ありがとうございます! やはりそういう理解でよろしかったんですね。composer require と removeを数回やっても、ぜんぜn該当のファイルが見当たらず、他に何かインストール方法がおかしかったのかと思ってました。 バージョン7に戻すのもなんですし、バージョン8を学びながらやっていきたいと思います。 ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問