AWS Lambda를 사용하여 LINE 봇 '람보 3'을 만들지 않습니까?

개요



2016/04/07 에 LINE의 "BOT API Trial Account"가 무료 제공 개시.
AWS Lambda에서 LINE 봇(앵무새 반환)을 생성합니다.
참조하는 from 을 잘못하기 쉽기 때문에, 주의의 것.

소개



이전에 Lambda에서 Slack 봇 람보를 만들었습니다.
  • AWS Lambda를 사용하여 Slack 봇 (명명 : Lambot [람보])을 저예산으로 만들지 않습니까?
  • AWS Lambda로 형태소 해석 할 수있는 현명한 Slack 봇을 저예산으로 만들지 않습니까 (2)

  • LINE 에서도 API 가 공개되었다고 하는 것으로, 「람보 3」을 만들지 않을까, 라고 하는 주지입니다.

    LINE



    아래 절차에 따라 LINE 계정으로 개발자를 등록합니다.

    등록 방법



  • ぇぺぺrs. 네. 메/ 방문
  • 오른쪽 상단의 채널을 클릭하고 자신의 LINE 계정으로 로그인
  • Channel ID, Channel Secret, MID가 있는지 확인하십시오.

    AWS Lambda



    Lambda 코드는 다음과 같습니다.
  • 처음 3행의//Your ID 는, 적절히, 자신의 ID 로 옮겨놓아 주세요.
  • to 에 from 의 값을 설정합니다.
    인수로 건네지는 json 객체의, 외측과 안쪽의 2개소에 from 가 있습니다만, 【내측 (content) 의 from 가 정답】입니다. 그것을 to로 설정하십시오.
  • toChannel, eventType 는 지정되어 있으므로 변경하지 말아 주세요!!!. 자세한 내용은 문서를 참조하십시오.
  • LINE 에서의 콜백은 Application/json 형식이므로 Slack 때와 같은 번거로운 폼→json 변환은 불필요합니다.
    (API Gatewary에서 POST를 받고 Lambda에 넣으면 괜찮습니다.)

  • 잊어 버렸지만 모듈 (request)을 사용하기 때문에 npm install 후 전체를 zip하고 Lambda에 업로드하십시오. Lamba에서 인라인 편집을 위해 요청 모듈을 사용하지 않도록 변경했습니다.

  • API 문서는 여기
    htps : //에서 ゔぇぺぺrs. 네. 메/보 t-아피/아피-레플렌세

    index.js
    'use strict';
    
    var ChannelID = 1470000000; // Your ID
    var ChannelSecret = "def889cei00000000000000000000000000000"; // Your ID
    var MID = "u0e0450000000000000000000"; // Your ID
    
    
    var https = require('https');
    
    function send(data, callback) {
      var body = JSON.stringify(data);
    
      var req = https.request({
        hostname: "trialbot-api.line.me",
        port: 443,
        path: "/v1/events",
        method: "POST",
        headers: {
          "Content-Type": "application/json",
          "Content-Length": Buffer.byteLength(body),
          'X-Line-ChannelID': ChannelID,
          'X-Line-ChannelSecret': ChannelSecret,
          'X-Line-Trusted-User-With-ACL': MID
        }
      });
    
      req.end(body, function (err) {
        err && console.log(err);
        callback(err);
      });
    }
    
    exports.handler = function (event, context, callback) {
      var result = event.result && event.result[0];
      if (result) {
        var content = result.content || {};
        var message = {
          "to": [content.from],
          "toChannel": 1383378250, // 1383378250 Fixed value
          "eventType": "138311608800106203", // “138311608800106203” Fixed value.
          "content": {
            "contentType": 1,
            "toType": 1,
            "text": content.text
          }
        };
        send(message, function () {
          callback();
        });
      } else {
        callback();
      }
    };
    

    GitHub는 여기
    htps : // 기주 b. 코 m/에아부gs/ぁm보 tぃ네/bぉb/마s테 r/그리고 x. js

    완성





    결론


  • LINE은 API 게시가 느립니다. 기를 놓친 느낌이 있네요.
  • Slack 봇은 채널을 상대로 하는 반면, LINE 봇은 기본적으로는 혼자를 상대하는 느낌이군요. 그 점에서 LINE은 아쉬움을 느낍니다.
  • API 그 자체도, 사용하기 쉽다고는 말할 수 없는 느낌. 으~응, 어때요.
  • 오류 코드가 심합니다. "500 내부 오류"는 확실히 몰랐습니다.
  • 아직 미리보기입니다. 정식 공개까지는 분명 좋아진다고 생각합니다.
  • 동영상이나 스탬프를 보내거나 받을 수 있는 것 같습니다만, 또 다음에.
  • 좋은 웹페이지 즐겨찾기