前提・実現したいこと
趣味でLineBotの勉強中です。
"おもしろまじめなチャットボットを作ろう"という本で勉強しています。
Line上で入力された適当な言葉に対して"hello"と返すコードですが
何を入力しても"Hello"と返ってきません。
確認したいことは以下の2点です。
1. 下記に示すlog中[result]に関する出力がありますが、この出力の表記が通信できているのか
通信できていないのか判断ができないです。
2.レンタルサーバーとしてさくらのレンタルサーバーを使用しております。こちらの
レンタルサーバーはcurlの機能は使えるのでしょうか?(一応phpinfo()にて確認しましたが、'enable'となっているため使えるものと考えておりますが...)
発生している問題・エラーメッセージ
phpでdebug.txtに入力、出力の情報を書き出しています。
以下のlogが出力されています。
[input] {"events":[{"type":"message","replyToken":"1dde07c2da904b5d98c3361e8cf47296","source":{"userId":"U2df22e7ddc417545b5dd8e15c13bf197","type":"user"},"timestamp":1599375528883,"mode":"active","message":{"type":"text","id":"12630624461427","text":"d"}}],"destination":"U3f0a01386451f3bfcee30416af01b3cb"} [output] {"replyToken":"1dde07c2da904b5d98c3361e8cf47296","messages":[{"type":"text","text":"hello"}]} [result] {"message":"Authorization header required. Must follow the scheme, 'Authorization: Bearer <ACCESS TOKEN>'"}
該当のソースコード
php
1<?php 2 3//チャネルアクセストークン 4define('TOKEN', 'ここにLINRのチャネルアクセストークンを入れています'); 5//logファイルの削除 6if(file_exists(DEBUG)) unlink(DEBUG); 7 8//ログファイルへの追加 9function debug($title,$text){ 10 file_put_contents(DEBUG, '['.$title.']'."\n".$text."\n\n", FILE_APPEND); 11} 12 13function post($url, $object){ 14 //JSON形式への変換 15 $json=json_encode($object); 16 debug('output', $json); 17 18 //送信の準備 19 $curl=curl_init('https://api.line.me/v2/bot/message/'.$url); 20 21 curl_setopt($curl. CURLOPT_POST, true); 22 curl_setopt($curl. CURLOPT_POSTFIELDS, $json); 23 curl_setopt($curl. CURLOPT_HTTPHEADER, [ 24 'Content-Type: application/json', 25 'Authorization: Bearer'.TOKEN 26 ]); 27 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 28 29 //送信の実行 30 $result=curl_exec($curl); 31 debug('result', $result); 32 33 //送信の終了 34 curl_close($curl); 35} 36 37function reply($event, $text){ 38 //送信データの作成 39 40 $object=[ 41 'replyToken'=>$event->replyToken, 42 'messages'=>[['type'=>'text', 'text'=>$text]] 43 ]; 44 45 //送信 46 post('reply', $object); 47} 48 ?> 49
試したこと
LINE developperのページからwebhookURLで指定したソースコードにエラーが出ない(Verifyが'success'である)ことを確認
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);をコメントアウトし、[result]出力が1になることを確認
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/06 12:30
2020/09/06 13:12
2020/09/12 07:50