LINEBOT에서 유파를 구현해 봅니다.

12064 단어 linebotPHP재료유파

소개



원작자(元ネタ)님의 기사: 자바로 유파를 구현해 보자 ​​- 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 코드에서 친구 등록하여 사용해보세요!

좋은 웹페이지 즐겨찾기