やりたいこと
php+herokuで簡単なおうむ返しlinebotを作りたい
現状
lineからメッセージを送るとステータス200(おそらく成功している)
ブラウザでhttps://firstdeploytest.herokuapp.com/
を開くとステータス500
lineからメッセージを送っても無反応(おうむ返しは帰ってこない)
herokuのログ
lineでメッセージを送るとこのようなログが出てきます
firstdeploytestは、herokuのアプリ名です。
zsh
1$ heroku logs --tail 22018-09-05T02:26:32.881172+00:00 app[web.1]: 10.191.189.148 - - [05/Sep/2018:02:26:32 +0000] "POST / HTTP/1.1" 200 2 "-" "LineBotWebhook/1.0 32018-09-05T02:26:32.882438+00:00 heroku[router]: at=info method=POST path="/" host=firstdeploytest.herokuapp.com request_id=7b07109c-98fd-4017-9174-1bfe8d69b913 fwd="203.104.146.154" dyno=web.1 connect=1ms service=204ms status=200 bytes=171 protocol=https
index.phpの中身はこちらです。
一旦、簡単なbotを作りたかったので、ネットから取ってきたものをコピペにしています。
(アクセストークンとシークレットトークンはもちろん自分のです。)
index.php
1<?php 2DEFINE("ACCESS_TOKEN", "アクセストークン"); 3DEFINE("SECRET_TOKEN", "シークレットトークン"); 4 5require_once "vendor/autoload.php"; 6 7$bot = new \LINE\LINEBot( 8 new \LINE\LINEBot\HTTPClient\CurlHTTPClient(ACCESS_TOKEN), 9 ['channelSecret' => SECRET_TOKEN] 10); 11 12$signature = $_SERVER["HTTP_".\LINE\LINEBot\Constant\HTTPHeader::LINE_SIGNATURE]; 13$body = file_get_contents("php://input"); 14 15$events = $bot->parseEventRequest($body, $signature); 16 17foreach ($events as $event) { 18 if ($event instanceof \LINE\LINEBot\Event\MessageEvent\TextMessage) { 19 $reply_token = $event->getReplyToken(); 20 $text = $event->getText(); 21 $bot->replyText($reply_token, $text); 22 } 23}
LINE側の設定
webhookには、https://firstdeploytest.herokuapp.com:443/callback
を設定しています。
他にやってみたこと
herokuにFixieをインストールして、そこで入手したOutbound IPsをLINEのセキュリティ設定のIPアドレスのところに設定しています。あまり関係なさそう・・・。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/09/05 02:43
退会済みユーザー
2018/09/05 02:44
退会済みユーザー
2018/09/05 02:45