【PHP】linebotでおうむ返し

linebotの練習でつくったオウム返しボットのコード。

<?php

//名前空間のインポート。一番右の非修飾名でインポートされる。
//これがなくてもフルパスで書けばいい
use \LINE\LINEBot\HTTPClient\CurlHTTPClient;

//LINESDKの読み込み
require_once('/var/seneigo_composer/vendor/autoload.php');

 
$json_string = file_get_contents('php://input');
$json_object = json_decode($json_string);
 
$httpClient = new CurlHTTPClient('チャネルアクセストークン');
$bot = new \LINE\LINEBot($httpClient, ['channelSecret' => 'チャネルシークレット']);


$header_signature = $_SERVER['HTTP_X_LINE_SIGNATURE'];


//署名を確認して、正当であればリクエストをパースし配列へ
$events = $bot->parseEventRequest($json_string, $header_signature);

//$event = $events[0];

foreach ($events as $event) {

$reply_token = $event->getReplyToken();
$reply_text = $event->getText(); //受信メッセージ
$bot->replyText($reply_token, $reply_text);  //返信

} //foreach

以下にかかれているコードはほぼ以下のページのコピー。消えたら困るので保存しておく。

【LINE API】ライン公式アカウントBotの作り方(PHPオウムBot)
LINE Messaging APIを使用して、ライン公式アカウントBotを作成します。BotはMessaging API作成初歩で一般的な、オウム返しBot(LINEで送ったメッセージをそのまま返信する)をPHPで作成します。
<?php

//LINE MessagingAPI アクセストークン
$accessToken = 'アクセストークン';

//アクション取得
$json_string = file_get_contents('php://input');
$json_object = json_decode($json_string);

//複数event対応
for ($i = 0; $i <= count($json_object->{"events"}) - 1; $i++) {
    //アクション判定
    if (strcmp($json_object->{"events"}[$i]->{"type"}, "message") == 0) {
        //個人チャット受信時
        //応答メッセージ
        $replyToken = $json_object->{"events"}[$i]->{"replyToken"};
        $return_message_text  = $json_object->{"events"}[$i]->{"message"}->{"text"};

        //レスポンスフォーマット
        $response_format_text = [
            [
                "type" => "text",
                "text" => $return_message_text
            ]
        ];

        //ポストデータ
        $post_data = [
            "replyToken" => $replyToken,
            "messages" => $response_format_text
        ];

        //curl実行
        $curl = curl_init("https://api.line.me/v2/bot/message/reply");
        $header = array(
            'Content-Type: application/json; charser=UTF-8',
            'Authorization: Bearer ' . $accessToken
        );
        curl_setopt($curl, CURLOPT_POST, TRUE);
        curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
        curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($post_data));
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt($curl, CURLOPT_COOKIEJAR,      'cookie');
        curl_setopt($curl, CURLOPT_COOKIEFILE,     'tmp');
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE);

        $result = curl_exec($curl);
        curl_close($curl);
    }
}

このページのもコピペでいけた

LINEのMessaging APIを使ってみる
LINEのMessaging APIを使って簡単なボットを作成してみます。 アカウント作成 まずはLINE Business IDを作成します。
タイトルとURLをコピーしました