Slack+GAS+Twilio에서 일하는 동안 잠자는 동료를 봇에 두드려 준다

이런 사람





조리법



(1) Outgoing Webhooks에서 Slack의 게시물에 반응



먼저 Outgoing Webhooks을 사용하여 특정 게시물에 반응하도록합시다.


설정 이름
내용


채널
여기에서 지정한 채널의 소식에 반응합니다. 취향에.

Trigger Word
여기에 지정된 단어로 시작하는 게시물에 반응합니다. 뭐든지 괜찮습니다만, bot군의 이름으로 할 때입니다.

URL
Trigger Word와 일치하는 경우 요청되는 URL입니다. 궁극적으로 GAS의 공개 URL을 지정하지만 일단 지금은 비어 있습니다.

Token
Webhook의 토큰입니다. 나중에 사용하므로 메모 때입니다.




(2) GAS로 받아 Twilio에 흘린다



GAS의 script는 이런 느낌. (에러 처리라든가 아무것도 하지 않지만)
Slack 주위의 어묵은 여기 라이브러리 를 사용하게 했습니다. 감사!

GoogleAppsScript
function doPost(e) {

  var webhook_token = '【Webhook Token】';
  var twilio_sid    = '【Twilio Application SID】';
  var twilio_token  = '【Twilio Token】';
  var slack_token   = '【Slack API Token】';

  //Webhookトークンの検証
  if (e.parameter.token != webhook_token) {
    throw new Error("invalid token.");
  }

  //e.parameter.textにSlackの投稿内容が入ってるのでマッチ条件は適当に変えてね
  if(e.parameter.text.match(/xxxxxさん起こして/)) {

    var payload = {
      'To'   : '【発信先の電話番号】', //+81xxxxxxxx
      'From' : '【発信元の電話番号】', //+81xxxxxxxx
      'Url'  : '【TwiMLのURL】'
    };

    UrlFetchApp.fetch('https://api.twilio.com/2010-04-01/Accounts/' + twilio_sid + '/Calls.json', {
      'method'  : 'POST',
      'headers' : {'Authorization' : ' Basic ' + Utilities.base64Encode(twilio_sid + ':' + twilio_token)},
      'payload' : payload,
      'muteHttpExceptions' : true
    });


    var app = SlackApp.create(slack_token);
    return app.postMessage(e.parameter.channel_id, 'よっしゃ、まかしとき!', {
      username: 'bot',
      icon_url: 'http://www.material-land.com/material/1769.gif'
    });
  }
}

  • Webhook Token
  • (1)에서 메모 한 녀석


  • Twilio Application SID/Twilio Token/발신자 전화 번호
  • 미리 Twilio의 관리 페이지에서 조사해 둔다


  • 발신지 전화번호
  • 두드리고 싶은 사람의 전화 번호
  • 모르면 소셜 엔지니어링을 사용하여 훔쳐 들으십시오.


  • TwiML URL
  • 전화를 받을 때 응답 메시지를 정의한 TwiML


  • TwiML
    <Response>
    <Say language="ja-jp">起きろー!!</Say>
    </Response>
    

    고정의 메시지가 아니고 Slack로 투고한 내용 주워 그대로 말해 봐도 좋네요.

    (3) 공개



    GAS를 공개합시다.
    [공개] ⇒ [웹 애플리케이션으로 도입]



    공개 URL이 표시되므로 메모합니다.
    마지막으로 Outgoing Webhooks의 설정 화면으로 돌아가 「URL」의 항목에 메모한 공개 URL을 등록하면 준비 완료!

    자, 일어나자.



    좋은 웹페이지 즐겨찾기