コード全文です。
コードの//コメントアウトで問題点を書いてあります。
コンパイルは出来ていて、Messaging APIリファレンスに準拠していると思うのですが、
飲食とメッセージを送っても、カルーセルが表示されません。
サムネイルプロパティを削れば、カルーセルは表示されます。
ラインボットに詳しい方、助けてください。
<?php $accessToken = 'ここのアクセストークンは伏せます'; $jsonString = file_get_contents('php://input'); error_log($jsonString); $jsonObj = json_decode($jsonString); $message = $jsonObj->{"events"}[0]->{"message"}; $replyToken = $jsonObj->{"events"}[0]->{"replyToken"}; if($message->{"text"} == '飲食') { $messageData = [ 'type' => 'template', 'altText' => '飲食カルーセル', 'template' => [ 'type' => 'carousel', 'columns' => [ [ //↓カルーセルのサムネイル画像を差し込みたいが、この一文を入れるとコンパイルは出来るが、処理が止まり、カルーセル自体が表示されなくなる 'thumbnailImageUrl' => 'https://www.lb-yado.tk/lb-yado/img_carousel/gurumet.jpg', //↑httpsは守れている。なにが原因かわからないのでわかる方教えていただきたいです。PHPです。 'title' => 'ご当地グルメ特選', 'text' => '並ぶけど、間違いないし!', 'actions' => [ [ 'type' => 'message', 'label' => 'おススメ順に表示', 'text' => '当ホテルのおススメ順DBからカルーセルで表示する' ], [ 'type' => 'message', 'label' => '現在地から近い順に表示', 'text' => '位置情報を送る/http://www.neobit.jp/archives/410' ], [ 'type' => 'message', 'label' => '予算の低い順に表示', 'text' => '予算の低い順からDBからカルーセルで表示する' ] ] ], [ 'title' => '寿司・海鮮丼', 'text' => '日本海の幸を堪能する!', 'actions' => [ [ 'type' => 'message', 'label' => 'おススメ順に表示', 'text' => '当ホテルのおススメ順DBからカルーセルで表示する' ], [ 'type' => 'message', 'label' => '現在地から近い順に表示', 'text' => '位置情報を送る/http://www.neobit.jp/archives/410' ], [ 'type' => 'message', 'label' => '予算の低い順に表示', 'text' => '予算の低い順からDBからカルーセルで表示する' ] ] ], [ 'title' => '金沢カレー', 'text' => 'トッピングでお腹いっぱい!', 'actions' => [ [ 'type' => 'message', 'label' => 'おススメ順に表示', 'text' => '当ホテルのおススメ順DBからカルーセルで表示する' ], [ 'type' => 'message', 'label' => '現在地から近い順に表示', 'text' => '位置情報を送る/http://www.neobit.jp/archives/410' ], [ 'type' => 'message', 'label' => '予算の低い順に表示', 'text' => '予算の低い順からDBからカルーセルで表示する' ] ] ], [ 'title' => '金沢おでん', 'text' => '麩や海鮮から旨味が出てる~!', 'actions' => [ [ 'type' => 'message', 'label' => 'おススメ順に表示', 'text' => '当ホテルのおススメ順DBからカルーセルで表示する' ], [ 'type' => 'message', 'label' => '現在地から近い順に表示', 'text' => '位置情報を送る/http://www.neobit.jp/archives/410' ], [ 'type' => 'message', 'label' => '予算の低い順に表示', 'text' => '予算の低い順からDBからカルーセルで表示する' ] ] ], [ 'title' => 'ラーメン', 'text' => '夜遅くまでやってるお店が多い!', 'actions' => [ [ 'type' => 'message', 'label' => 'おススメ順に表示', 'text' => '当ホテルのおススメ順DBからカルーセルで表示する' ], [ 'type' => 'message', 'label' => '現在地から近い順に表示', 'text' => '位置情報を送る/http://www.neobit.jp/archives/410' ], [ 'type' => 'message', 'label' => '予算の低い順に表示', 'text' => '予算の低い順からDBからカルーセルで表示する' ] ] ], [ 'title' => '焼肉・焼鳥・鍋', 'text' => '金沢の夜をがっつり!', 'actions' => [ [ 'type' => 'message', 'label' => 'おススメ順に表示', 'text' => '当ホテルのおススメ順DBからカルーセルで表示する' ], [ 'type' => 'message', 'label' => '現在地から近い順に表示', 'text' => '位置情報を送る/http://www.neobit.jp/archives/410' ], [ 'type' => 'message', 'label' => '予算の低い順に表示', 'text' => '予算の低い順からDBからカルーセルで表示する' ] ] ], [ 'title' => '居酒屋', 'text' => '海鮮をつまみに、地酒に酔う!', 'actions' => [ [ 'type' => 'message', 'label' => 'おススメ順に表示', 'text' => '当ホテルのおススメ順DBからカルーセルで表示する' ], [ 'type' => 'message', 'label' => '現在地から近い順に表示', 'text' => '位置情報を送る/http://www.neobit.jp/archives/410' ], [ 'type' => 'message', 'label' => '予算の低い順に表示', 'text' => '予算の低い順からDBからカルーセルで表示する' ] ] ], [ 'title' => 'バー', 'text' => 'おいしい会話を過ごす', 'actions' => [ [ 'type' => 'message', 'label' => 'おススメ順に表示', 'text' => '当ホテルのおススメ順DBからカルーセルで表示する' ], [ 'type' => 'message', 'label' => '現在地から近い順に表示', 'text' => '位置情報を送る/http://www.neobit.jp/archives/410' ], [ 'type' => 'message', 'label' => '予算の低い順に表示', 'text' => '予算の低い順からDBからカルーセルで表示する' ] ] ], ] ] ]; } else { // それ以外は送られてきたテキストをオウム返し $messageData = [ 'type' => 'text', 'text' => $message->{"text"} ]; } $response = [ 'replyToken' => $replyToken, 'messages' => [$messageData] ]; error_log(json_encode($response)); $ch = curl_init('https://api.line.me/v2/bot/message/reply'); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($response)); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json; charser=UTF-8', 'Authorization: Bearer ' . $accessToken )); $result = curl_exec($ch); error_log($result); curl_close($ch);

回答1件
あなたの回答
tips
プレビュー