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

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

解決済

1回答

1599閲覧

ラインボット で 定めた返答が来ないのを解決したい。LINE BOT

pro59luckjp

総合スコア12

LINE Messaging API

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

PHP

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

0グッド

0クリップ

投稿2019/04/19 06:21

前提・実現したいこと

「おもしろまじめなチャットボットをつくろう」
http://cgi1.plala.or.jp/~higpen/book/chatBot/index.shtml

でチャットボットを作成しています。
P97からの応答するBotで返信が来ません。

ネットに落ちている別のPHPプログラムでは返信がきます。

本を参考にしながら書いたプログラムで返信が来ない理由がわかりません。
ラインボットが得意な方、PHP得意な方、よろしければ教えてください。

該当のソースコード

■main.php

<?php require_once('hello/hello.php'); define('DEBUG','debug.txt'); require_once('tool.php'); $input=file_get_contents('php://input'); debug('input',$input); if(!empty($input)){ $events=json_decode($input)->events; foreach($events as $event){ bot($event); } } ■tool.php <?php define('TOKEN','ここにはラインのトークンをいれています。'); if(file_exists(DEBUG)) unlink(DEBUG); function debug($title,$text){ file_put_contents(DEBUG,'['.$title.']'."\n".$text."\n\n",FILE_APPEND); } function post($url,$object){ $json=json_encode($object); debug('output',$json); $curl=curl_init('https://api.line.me/v2/bot/message/'.$url); curl_setopt($curl,CURLOPT_POST,true); curl_setopt($curl,CURLOPT_POSTFIELDS,$json); curl_setopt($curl,CURLOPT_HTTPHEADER,[ 'Content-Type:application/json', 'Authorization:Bearer'.TOKEN ]); $result=curl_exec($curl); debug('result',$result); curl_close($curl); } function reply($event,$text){ $object=[ 'replyToken'=>$event->replyToken, 'messages'=>[['type'=>'text','text'=>$text]] ]; post('reply',$object); } ■hello/hello.php <?php function bot($event){ reply($event,'HELLO'); } ```ここに言語名を入力 ソースコード PHP ``` ### 試したこと ブラウザから各PHPにアクセスして、500が出ませんので、コンパイルは出来ています。 http://www.lb-yado.tk/mybot/debug.txt https://www.lb-yado.tk/mybot/main.php https://www.lb-yado.tk/mybot/tool.php https://www.lb-yado.tk/mybot/hello/hello.php ### 補足情報(FW/ツールのバージョンなど) ラインはSSL通信でのみ可能で、 共有SSLサーバーを契約して、 別のPHPプログラムでは応答が来ることから、SSL通信は問題ありません。

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

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

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

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

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

Y.H.

2019/04/19 06:56

debug.txt の内容を質問に追記してください。 ※ラインのトークン部分はxxxcなどで変更ください
pro59luckjp

2019/04/19 06:59

[input] {"events":[{"type":"message","replyToken":"xxxc","source":{"userId":"U6f0c88562f6acf1bbb74420dc2a8e0a9","type":"user"},"timestamp":1555657148271,"message":{"type":"text","id":"9719297481767","text":"送信はこれ"}}],"destination":"U24f0a09094296136bd566c85e8a82389"} [output] {"replyToken":"xxxc","messages":[{"type":"text","text":"\u9001\u4fe1\u306f\u3053\u308c"}]} [result] 1
Y.H.

2019/04/19 07:19

質問を編集し、質問に追記してください。 ここはコメント数が多くなると古いものが非表示になります。
guest

回答1

0

ベストアンサー

半角スペースが抜けています。Authorization:BearerTOKENの間に半角スペースを入れてみてください。

php

1curl_setopt($curl,CURLOPT_HTTPHEADER,[ 2'Content-Type:application/json', 3'Authorization:Bearer '.TOKEN 4]);

投稿2019/04/19 07:29

Y.H.

総合スコア7914

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

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

pro59luckjp

2019/04/19 09:42

完全に動きました! なぜわかったのでしょうか? debug.txtからでしょうか、経験からでしょうか。 なぜ結合演算子でつなぐのにスペースがあったほうがいいのかわかりませんが、 動いたので、今は最高の気分です!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問