読者です 読者をやめる 読者になる 読者になる

PHP+さくらサーバーSSLでLINEBotを作ってみた

↓こちらのサイトを参考にして、LINEBotを作ってみました。

APIを使えるようにするにはこちら。

いくつか引っかかった点をピックアップします。

必要なもの

・SSL環境(https://〜から始まるやつ)が必要。
・LINE developers に表示される「Channel Access Token」が必要。

さくらサーバーの環境構築

Mac のターミナルなどで、さくらサーバーへSSL接続する。

cd [作業フォルダ] へ移動
 
curl -sS https://getcomposer.org/installer | php
 
php composer.phar require linecorp/line-bot-sdk

とコマンドを打ちます。

すると、↓こんな感じで、ファイルやフォルダができます。

callback.php ファイルを作る

<?php

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

//ユーザーからのメッセージ取得
$json_string = file_get_contents('php://input');
$jsonObj = json_decode($json_string);

$type = $jsonObj->{"events"}[0]->{"message"}->{"type"};
//メッセージ取得
$text = $jsonObj->{"events"}[0]->{"message"}->{"text"};
//ReplyToken取得
$replyToken = $jsonObj->{"events"}[0]->{"replyToken"};

//メッセージ以外のときは何も返さず終了
if($type != "text"){
 exit;
}

//返信データ作成

 $response_format_text = [
 "type" => "text",
 "text" => $text."ーーー!"
 ];

$post_data = [
"replyToken" => $replyToken,
"messages" => [$response_format_text]
];

$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($post_data));
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
 'Content-Type: application/json; charser=UTF-8',
 'Authorization: Bearer ' . $accessToken
 ));
$result = curl_exec($ch);
curl_close($ch);

↑このように callback.php ファイルを作ると、LINEBotが送信した文字を叫んで返してくれます。

iOSのプッシュ通知の環境構築を自分でする場合とても面倒ですが、その部分をLINEが代わりにやってくれていると考えると今回のは簡単にできました。