Twilio에서 오류가 발생했을 때 Slack에 알리고 싶습니다.
9475 단어 슬랙twilioTwilioFunctions
소개
Twilio를 사용한 전화 처리에서 오류가 발생하면 Slack에 알림을 보내고 싶습니다.
이 실현 방법은 2015년 10월에 @kimihom씨가 AWS를 사용한 기사를 공개되고 있지만, 이번에는 AWS 등의 외부 서비스를 사용하지 않고 Twilio Functions를 사용하여 실현한다.
전체 흐름
일련의 흐름은 다음과 같습니다.

사전 준비
단계 개요
1. Functoins 설정
Configure
우선 환경 변수와 이용하는 패키지의 설정을 행한다.
Twilio 콘솔에서 Runtime > Functions > Configure으로 이동하여 다음 설정을 구성합니다.
Environmental Variables
KEY
VALUE
SLACK_WEBHOOK_URL
htps // // 뽀오 ks. scck. 코 m / 세 r
SAY_MSG
(선택 사항)
Dependencies
NAME
VERSION
@slack/client
3.16.0
Manage
다음으로 Function 만들기
Twilio 콘솔에서 Runtime > Functions > Manage으로 이동하여 Function 만들기
"+"버튼을 눌러 Blank를 선택하고 [Create]. 이하의 설정을 행한다.
Properties
이름
Value
FUNCTION NAME
Fallback Handler
PATH
/fallback
구성
이름
Value
ACCESS CONTROL
checked
EVENT
Incoming Voice Calls
CODE
아래 참조
코드
const { IncomingWebhook } = require('@slack/client')
exports.handler = function(context, event, callback) {
console.log(context, event)
const msg_say = context.SAY_MSG || "ただいま回線が混みあっております。時間をおいておかけ直しください。"
const slack_url = context.SLACK_WEBHOOK_URL
const msg = `
電話エラー発生!!
AccountSid: ${event.AccountSid}
From: ${event.From}
To: ${event.To}
Direction: ${event.Direction}
Logs: <https://jp.twilio.com/console/voice/calls/logs/${event.CallSid}|Link>`.replace(/^\s+/mg, '')
const slack = new IncomingWebhook(slack_url)
const msg_slack = {
text: msg,
icon_emoji: ":ghost:"
}
slack.send(msg_slack, function(err, res) {
if (err) {
console.log('Slack Error:', err)
} else {
console.log('Slack Message sent: ', res)
}
let twiml = new Twilio.twiml.VoiceResponse()
twiml.say({voice: 'woman', language: 'ja-JP'}, msg_say)
callback(null, twiml)
});
}
2. 전화 번호의 오류 처리 설정
Twilio 콘솔에서 Phone Numbers으로 이동하여 전화 번호를 선택합니다.
설정 > 음성 및 팩스의 메인 핸들러 실패 시 1에서 작성한 Function(Fallback Handler) 지정
3. 확인
설정 > 음성 및 팩스 '통화 착신 시' 웹훅 URL을 존재하지 않는 URL로 변경하여 Twilio가 404 오류를 수신하도록 합니다.
전화 번호로 전화를 걸어 설정한 음성 메시지가 흐르고 Slack에 메시지가 도착하는지 확인합니다.

확인한 후 Webhook URL을 되돌리는 것을 잊지 마세요!
요약 · 마지막으로
설정 > 음성 및 팩스 '통화 착신 시' 웹훅 URL을 존재하지 않는 URL로 변경하여 Twilio가 404 오류를 수신하도록 합니다.
전화 번호로 전화를 걸어 설정한 음성 메시지가 흐르고 Slack에 메시지가 도착하는지 확인합니다.

확인한 후 Webhook URL을 되돌리는 것을 잊지 마세요!
요약 · 마지막으로
Runtime > Alert Triggers를 사용하면 전화번호별이 아니라 포괄적으로 유사한 설정을 할 수 있을까?
추가
앱 서버가 크지 않은 경우는 Twilio와 앱을 하나의 것으로 인식하고 있는 경우도 많기 때문에 타이틀의 표기로 합니다.
Reference
이 문제에 관하여(Twilio에서 오류가 발생했을 때 Slack에 알리고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sakazuki/items/07ce60dcab38aa016ea2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)