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

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

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

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

PHP

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

Q&A

0回答

799閲覧

PHP LineBot アクセストークン、シークレットトークンはあっているが返信がこない

koako

総合スコア6

LINE Messaging API

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

PHP

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

0グッド

0クリップ

投稿2021/05/04 02:10

###line-bot-sdk-phpを使用してLineBotを作成しているが返信が帰ってこない
実装環境

  • CentOS8
  • PHP7.3

現状
デバックで送信されたメッセージと、レスポンス内容を取得したところレスポンスの際にアクセストークンの認証に失敗しているとの記述があるのですが、タイトルにも書いているのですがアクセストークンとシークレットトークンは確認したところあっており、サーバーもwebhookとして正常に登録できている状態です。アクセストークン、シークレットトークンの再発行も行ったのですが現状が変わりませんでした。
アクセストークンがあっているのに認証されない原因がわからず困っています。どなたかご教授いただけると幸いです。
また気になった点として、メッセージを送信した時間とレスポンスの時間がなぜか噛み合わない状態になってしまっています。

デバックの内容

LINE\LINEBot\Event\MessageEvent\TextMessage Object ( [emojis:LINE\LINEBot\Event\MessageEvent\TextMessage:private] => [mentionees:LINE\LINEBot\Event\MessageEvent\TextMessage:private] => [message:protected] => Array ( [type] => text [id] => 13992700300144 [text] => や ) [event:protected] => Array ( [type] => message [message] => Array ( [type] => text [id] => 13992700300144 [text] => や ) [timestamp] => 1620093353424 [source] => Array ( [type] => user [userId] => U23d1c181167c4cf898db12e3e6555ac6 ) [replyToken] => 80ff35c4c5da441d974ee71350c3ad93 [mode] => active ) ) 2021/05/04 10:55:52 //メッセージを送った時間 LINE\LINEBot\Response Object ( [httpStatus:LINE\LINEBot\Response:private] => 401 [body:LINE\LINEBot\Response:private] => {"message":"Authentication failed. Confirm that the access token in the authorization header is valid."} [headers:LINE\LINEBot\Response:private] => Array ( [Server] => openresty [Date] => Tue, 04 May 2021 01:55:53 GMT [Content-Type] => application/json [Transfer-Encoding] => chunked [Connection] => keep-alive [x-line-request-id] => 058db0b0-02be-4883-b5c8-67e45f141562 [x-content-type-options] => nosniff [x-xss-protection] => 1; mode=block [cache-control] => no-cache, no-store, max-age=0, must-revalidate [pragma] => no-cache [expires] => 0 [x-frame-options] => DENY [www-authenticate] => Bearer error="invalid_token", error_description="invalid token" )

コード

<?php require_once('vendor/autoload.php'); use LINE\LINEBot\HTTPClient\CurlHTTPClient; use LINE\LINEBot; use LINE\LINEBot\Constant\HTTPHeader;    //先ほど取得したチャネルシークレットとチャネルアクセストークンを以下の変数にセット $channel_access_token = 'xxxxxx'; $channel_secret = 'xxxxxx'; $http_client = new CurlHTTPClient($channel_access_token); $bot = new LINEBot($http_client, ['channelSecret' => $channel_secret]); $signature = $_SERVER['HTTP_' . HTTPHeader::LINE_SIGNATURE]; $request_body = file_get_contents('php://input'); $events = $bot->parseEventRequest($request_body, $signature); $event = $events[0]; $events = $bot->parseEventRequest($request_body, $signature); $reply_token = $event->getReplyToken(); $reply_text = $event->getText(); $bot->replyText($reply_token, $reply_text); error_log(print_r($event, true) . "\n", 3, "debug.log"); error_log( date("Y/m/d H:i:s") . "\n", 3, "debug.log"); error_log(print_r($bot->replyText($reply_token, $reply_text), true) . "\n", 3, "debug.log");

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問