LINEBOT에서 유파를 구현해 봅니다.
소개
원작자(元ネタ)님의 기사: 자바로 유파를 구현해 보자 - Qiita
무엇을 달인지 모르겠지만,
집필 시점(2020/11/09)에서 LINEBOT로 실장해 기사로 되어 있는 분이 없었으므로, 실장해 보았습니다.
코드
PHP7에서 구현했습니다.
**
<?php
// 湯婆婆関数
function yubaba($name, $token_reply) {
// 贅沢なリプライメッセージ
$hun = [
'type' => 'text',
'text' => "フン。".$name."というのかい。\n贅沢な名だねぇ。"
];
// 湯婆婆が名前を1文字ずつ認識できる様にする
$name_arr = preg_split("/\B/u", $name);
// 抜き出す1文字の位置を求める
$num = mt_rand(0,count($name_arr));
// 新しい名
$na = $name_arr[$num];
// 君の名は。
$kiminonaha = [
'type' => 'text',
'text' => "今からお前の名前は".$na."だ。\nいいかい、".$na."だよ。\n分かったら返事をするんだ、".$na."!!"
];
$content = [
'replyToken' => $token_reply,
'messages' => [$hun,$kiminonaha]
];
return $content;
}
function follow_reply($token_reply) {
$keiyaku = [
'type' => 'text',
'text' => "契約書だよ。\nそこに名前を書きな。"
];
$content = [
'replyToken' => $token_reply,
'messages' => [$keiyaku]
];
return $content;
}
// リプライメッセージ送信関数
function send($content,$token) {
$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($content));
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json; charser=UTF-8',
'Authorization: Bearer ' . $token
));
$result = curl_exec($ch);
curl_close($ch);
}
// メイン関数
function main() {
// アクセストークン
$token_access = file_get_contents('token.txt');
// リクエストjsonデータの処理
$json_req = file_get_contents('php://input');
$obj_req = json_decode($json_req);
$event_type = $obj_req->{"events"}[0]->{"type"};
if ($event_type === "message") { // メッセージの場合
// メッセージデータ
$msg = $obj_req->{"events"}[0]->{"message"}->{"text"};
// 先頭及び末尾の空白などの余分な要素を削除
$msg = trim($msg);
// リプライトークン
$token_reply = $obj_req->{"events"}[0]->{"replyToken"};
// 湯婆婆
$content_reply = yubaba($msg, $token_reply);
} elseif ($event_type === "follow") { // 友達追加の場合
// リプライトークン
$token_reply = $obj_req->{"events"}[0]->{"replyToken"};
// 友達追加メッセージ
$content_reply = follow_reply($token_reply);
} else {
exit(0);
}
// 送信
send($content_reply,$token_access);
}
main();
실행 예
유파의 이미지는 스튜디오 지브리 공식 프리 소재 페이지 에서 사용하고 있습니다.
마지막으로
유파의 실장 의외로 재미있다.
LINEBOT의 좋은 점은 이 기사를 읽은 사람이 바로 시도할 수 있는 점이군요!
다음 친구 추가 버튼 또는 QR 코드에서 친구 등록하여 사용해보세요!
Reference
이 문제에 관하여(LINEBOT에서 유파를 구현해 봅니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hajikuma11/items/c6745b3fdfa26fe37553
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
PHP7에서 구현했습니다.
**
<?php
// 湯婆婆関数
function yubaba($name, $token_reply) {
// 贅沢なリプライメッセージ
$hun = [
'type' => 'text',
'text' => "フン。".$name."というのかい。\n贅沢な名だねぇ。"
];
// 湯婆婆が名前を1文字ずつ認識できる様にする
$name_arr = preg_split("/\B/u", $name);
// 抜き出す1文字の位置を求める
$num = mt_rand(0,count($name_arr));
// 新しい名
$na = $name_arr[$num];
// 君の名は。
$kiminonaha = [
'type' => 'text',
'text' => "今からお前の名前は".$na."だ。\nいいかい、".$na."だよ。\n分かったら返事をするんだ、".$na."!!"
];
$content = [
'replyToken' => $token_reply,
'messages' => [$hun,$kiminonaha]
];
return $content;
}
function follow_reply($token_reply) {
$keiyaku = [
'type' => 'text',
'text' => "契約書だよ。\nそこに名前を書きな。"
];
$content = [
'replyToken' => $token_reply,
'messages' => [$keiyaku]
];
return $content;
}
// リプライメッセージ送信関数
function send($content,$token) {
$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($content));
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json; charser=UTF-8',
'Authorization: Bearer ' . $token
));
$result = curl_exec($ch);
curl_close($ch);
}
// メイン関数
function main() {
// アクセストークン
$token_access = file_get_contents('token.txt');
// リクエストjsonデータの処理
$json_req = file_get_contents('php://input');
$obj_req = json_decode($json_req);
$event_type = $obj_req->{"events"}[0]->{"type"};
if ($event_type === "message") { // メッセージの場合
// メッセージデータ
$msg = $obj_req->{"events"}[0]->{"message"}->{"text"};
// 先頭及び末尾の空白などの余分な要素を削除
$msg = trim($msg);
// リプライトークン
$token_reply = $obj_req->{"events"}[0]->{"replyToken"};
// 湯婆婆
$content_reply = yubaba($msg, $token_reply);
} elseif ($event_type === "follow") { // 友達追加の場合
// リプライトークン
$token_reply = $obj_req->{"events"}[0]->{"replyToken"};
// 友達追加メッセージ
$content_reply = follow_reply($token_reply);
} else {
exit(0);
}
// 送信
send($content_reply,$token_access);
}
main();
실행 예
유파의 이미지는 스튜디오 지브리 공식 프리 소재 페이지 에서 사용하고 있습니다.
마지막으로
유파의 실장 의외로 재미있다.
LINEBOT의 좋은 점은 이 기사를 읽은 사람이 바로 시도할 수 있는 점이군요!
다음 친구 추가 버튼 또는 QR 코드에서 친구 등록하여 사용해보세요!
Reference
이 문제에 관하여(LINEBOT에서 유파를 구현해 봅니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hajikuma11/items/c6745b3fdfa26fe37553
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
유파의 실장 의외로 재미있다.
LINEBOT의 좋은 점은 이 기사를 읽은 사람이 바로 시도할 수 있는 점이군요!
다음 친구 추가 버튼 또는 QR 코드에서 친구 등록하여 사용해보세요!
Reference
이 문제에 관하여(LINEBOT에서 유파를 구현해 봅니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hajikuma11/items/c6745b3fdfa26fe37553텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)