Toggle navigation
Toggle navigation
This project
Loading...
Sign in
조현아
/
LINEBOT
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
조현아
2019-06-07 02:21:04 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
f0cdf010861afab506f4211b512846f7131e1cb5
f0cdf010
1 parent
8cc55172
text-to-speech and add languages
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
643 additions
and
88 deletions
app.js
app.js
View file @
f0cdf01
var
express
=
require
(
"express"
);
const
line
=
require
(
"@line/bot-sdk"
);
var
request
=
require
(
"request"
);
var
express
=
require
(
'express'
);
const
line
=
require
(
'@line/bot-sdk'
);
var
request
=
require
(
'request'
);
const
AWS
=
require
(
'aws-sdk'
);
const
fs
=
require
(
'fs'
);
var
app
=
express
();
const
config
=
require
(
"./config.js"
);
const
config
=
require
(
'./config'
);
var
translate_api_url
=
"https://openapi.naver.com/v1/papago/n2mt"
;
//번역 api_url
var
languagedetect_api_url
=
"https://openapi.naver.com/v1/papago/detectLangs"
;
//언어감지 api_url
const
Polly
=
new
AWS
.
Polly
({
signatureVersion
:
'v4'
,
region
:
'ap-northeast-2'
,
accessKeyId
:
config
.
aws_config
.
aws_access_key_id
,
secretAccessKey
:
config
.
aws_config
.
aws_secret_access_key
});
//번역 api_url
var
translate_api_url
=
'https://openapi.naver.com/v1/papago/n2mt'
;
//언어감지 api_url
var
languagedetect_api_url
=
'https://openapi.naver.com/v1/papago/detectLangs'
;
var
language
=
"en"
;
var
voice
=
false
;
//eng grammar check
var
EnGrammarCheck_api_url
=
'https://api.textgears.com/check.php'
;
// about the middleware, please refer to doc
app
.
get
(
"/"
,
function
(
req
,
res
)
{
res
.
send
(
"!"
);
// create LINE SDK client
const
client
=
new
line
.
Client
(
config
.
line_config
);
const
{
LineClient
}
=
require
(
'messaging-api-line'
);
//replyAudio 지원
const
voice_client
=
LineClient
.
connect
({
accessToken
:
config
.
line_config
.
channelAccessToken
,
channelSecret
:
config
.
line_config
.
channelSecret
});
// register a webhook handler with middleware
app
.
post
(
"/webhook"
,
line
.
middleware
(
config
.
line_config
),
(
req
,
res
)
=>
{
// res.status(200).end();
Promise
.
all
(
req
.
body
.
events
.
map
(
handleEvent
)).
then
(
result
=>
res
.
json
(
result
)
);
// serve static files
app
.
use
(
express
.
static
(
'public'
));
// create Express app
// about Express itself: https://expressjs.com/
app
.
get
(
"/upload"
,
function
(
req
,
res
)
{
res
.
render
(
"upload"
);
});
const
client
=
new
line
.
Client
(
config
.
line_config
);
//event handler
app
.
post
(
"/webhook"
,
line
.
middleware
(
config
.
line_config
),
(
req
,
res
)
=>
{
// res.status(200).end();
Promise
.
all
(
req
.
body
.
events
.
map
(
handleEvent
)).
then
(
result
=>
res
.
json
(
result
)
);
});
function
handleEvent
(
event
)
{
console
.
log
(
"event.message.text"
);
if
(
event
.
type
!==
"message"
||
event
.
message
.
type
!==
"text"
)
{
console
.
log
(
"2"
);
// ignore non-text-message event
return
Promise
.
resolve
(
null
);
}
return
new
Promise
(
function
(
resolve
,
reject
)
{
console
.
log
(
"3"
);
//언어 감지 option
var
detect_options
=
{
url
:
languagedetect_api_url
,
form
:
{
query
:
event
.
message
.
text
},
headers
:
config
.
naver_header
};
//papago 언어 감지
request
.
post
(
detect_options
,
function
(
error
,
response
,
body
)
{
console
.
log
(
"4"
);
console
.
log
(
response
.
statusCode
);
if
(
!
error
&&
response
.
statusCode
==
200
)
{
var
detect_body
=
JSON
.
parse
(
response
.
body
);
var
source
=
""
;
var
target
=
""
;
var
result
=
{
type
:
"text"
,
text
:
""
};
//언어 감지가 제대로 됐는지 확인
console
.
log
(
detect_body
.
langCode
);
//번역은 한국어->영어 / 영어->한국어만 지원
if
(
detect_body
.
langCode
==
"ko"
||
detect_body
.
langCode
==
"en"
)
{
console
.
log
(
"5"
);
source
=
detect_body
.
langCode
==
"ko"
?
"ko"
:
"en"
;
target
=
source
==
"ko"
?
"en"
:
"ko"
;
//papago 번역 option
var
options
=
{
url
:
translate_api_url
,
// 한국어(source : ko), 영어(target: en), 카톡에서 받는 메시지(text)
form
:
{
source
:
source
,
target
:
target
,
text
:
event
.
message
.
text
},
if
(
event
.
type
!==
'message'
||
event
.
message
.
type
!==
'text'
)
{
// ignore non-text-message event
return
Promise
.
resolve
(
null
);
}
return
new
Promise
(
function
(
resolve
,
reject
)
{
//언어 감지 option
var
detect_options
=
{
url
:
languagedetect_api_url
,
form
:
{
'query'
:
event
.
message
.
text
},
headers
:
config
.
naver_header
};
// Naver Post API
request
.
post
(
options
,
function
(
error
,
response
,
body
)
{
// Translate API Success
if
(
!
error
&&
response
.
statusCode
==
200
)
{
// JSON
var
objBody
=
JSON
.
parse
(
response
.
body
);
// Message 잘 찍히는지 확인
result
.
text
=
objBody
.
message
.
result
.
translatedText
;
console
.
log
(
result
.
text
);
//번역된 문장 보내기
client
.
replyMessage
(
event
.
replyToken
,
result
)
.
then
(
resolve
)
.
catch
(
reject
);
};
//papago 언어 감지
request
.
post
(
detect_options
,
function
(
error
,
response
,
body
)
{
console
.
log
(
response
.
statusCode
);
if
(
!
error
&&
response
.
statusCode
==
200
)
{
console
.
log
(
event
);
var
detect_body
=
JSON
.
parse
(
response
.
body
);
var
source
=
''
;
var
target
=
''
;
var
result
=
{
type
:
'text'
,
text
:
''
};
var
send
=
{};
//언어 감지가 제대로 됐는지 확인
console
.
log
(
detect_body
.
langCode
);
switch
(
event
.
message
.
text
)
{
case
"영어"
:
if
(
detect_body
.
langCode
==
"ko"
||
detect_body
.
langCode
==
"en"
)
{
language
=
"ja"
;
source
=
detect_body
.
langCode
==
"ko"
?
"ko"
:
"en"
;
target
=
source
==
"ko"
?
"en"
:
"ko"
;
//papago 번역 option
var
options
=
{
url
:
translate_api_url
,
form
:
{
source
:
source
,
target
:
target
,
text
:
event
.
message
.
text
},
headers
:
config
.
naver_header
};
request
.
post
(
options
,
function
(
error
,
response
,
body
)
{
if
(
!
error
&&
response
.
statusCode
==
200
)
{
// JSON
var
objBody
=
JSON
.
parse
(
response
.
body
);
// Message 잘 찍히는지 확인
result
.
text
=
objBody
.
message
.
result
.
translatedText
;
console
.
log
(
result
.
text
);
//번역된 문장 보내기
client
.
replyMessage
(
event
.
replyToken
,
result
)
.
then
(
resolve
)
.
catch
(
reject
);
}
});
}
else
{
result
.
text
=
"언어를 감지할 수 없습니다. \n 번역 언어는 한글 또는 영어만 가능합니다."
;
client
.
replyMessage
(
event
.
replyToken
,
result
)
.
then
(
resolve
)
.
catch
(
reject
);
}
break
;
case
"일본어"
:
if
(
detect_body
.
langCode
==
"ko"
||
detect_body
.
langCode
==
"ja"
)
{
language
=
"ja"
;
source
=
detect_body
.
langCode
==
"ko"
?
"ko"
:
"ja"
;
target
=
source
==
"ko"
?
"ja"
:
"ko"
;
//papago 번역 option
var
options
=
{
url
:
translate_api_url
,
form
:
{
source
:
source
,
target
:
target
,
text
:
event
.
message
.
text
},
headers
:
config
.
naver_header
};
request
.
post
(
options
,
function
(
error
,
response
,
body
)
{
if
(
!
error
&&
response
.
statusCode
==
200
)
{
// JSON
var
objBody
=
JSON
.
parse
(
response
.
body
);
// Message 잘 찍히는지 확인
result
.
text
=
objBody
.
message
.
result
.
translatedText
;
console
.
log
(
result
.
text
);
//번역된 문장 보내기
client
.
replyMessage
(
event
.
replyToken
,
result
)
.
then
(
resolve
)
.
catch
(
reject
);
}
});
}
else
{
result
.
text
=
"언어를 감지할 수 없습니다. \n 번역 언어는 한글 또는 일본어만 가능합니다."
;
client
.
replyMessage
(
event
.
replyToken
,
result
)
.
then
(
resolve
)
.
catch
(
reject
);
}
break
;
case
'중국어'
:
if
(
detect_body
.
langCode
==
"ko"
||
detect_body
.
langCode
==
"zh-CN"
)
{
language
=
"zh-CN"
;
source
=
detect_body
.
langCode
==
"ko"
?
"ko"
:
"zh-CN"
;
target
=
source
==
"ko"
?
"zh-CN"
:
"ko"
;
//papago 번역 option
var
options
=
{
url
:
translate_api_url
,
form
:
{
source
:
source
,
target
:
target
,
text
:
event
.
message
.
text
},
headers
:
config
.
naver_header
};
request
.
post
(
options
,
function
(
error
,
response
,
body
)
{
if
(
!
error
&&
response
.
statusCode
==
200
)
{
// JSON
var
objBody
=
JSON
.
parse
(
response
.
body
);
// Message 잘 찍히는지 확인
result
.
text
=
objBody
.
message
.
result
.
translatedText
;
console
.
log
(
result
.
text
);
//번역된 문장 보내기
client
.
replyMessage
(
event
.
replyToken
,
result
)
.
then
(
resolve
)
.
catch
(
reject
);
}
});
}
else
{
result
.
text
=
"언어를 감지할 수 없습니다. \n 번역 언어는 한글 또는 중국어만 가능합니다."
;
client
.
replyMessage
(
event
.
replyToken
,
result
)
.
then
(
resolve
)
.
catch
(
reject
);
}
break
;
case
'스페인어'
:
if
(
detect_body
.
langCode
==
"ko"
||
detect_body
.
langCode
==
"es"
)
{
language
=
"es"
;
source
=
detect_body
.
langCode
==
"ko"
?
"ko"
:
"es"
;
target
=
source
==
"ko"
?
"es"
:
"ko"
;
//papago 번역 option
var
options
=
{
url
:
translate_api_url
,
form
:
{
source
:
source
,
target
:
target
,
text
:
event
.
message
.
text
},
headers
:
config
.
naver_header
};
request
.
post
(
options
,
function
(
error
,
response
,
body
)
{
if
(
!
error
&&
response
.
statusCode
==
200
)
{
// JSON
var
objBody
=
JSON
.
parse
(
response
.
body
);
// Message 잘 찍히는지 확인
result
.
text
=
objBody
.
message
.
result
.
translatedText
;
console
.
log
(
result
.
text
);
//번역된 문장 보내기
client
.
replyMessage
(
event
.
replyToken
,
result
)
.
then
(
resolve
)
.
catch
(
reject
);
}
});
}
else
{
result
.
text
=
"언어를 감지할 수 없습니다. \n 번역 언어는 한글 또는 스페인어만 가능합니다."
;
client
.
replyMessage
(
event
.
replyToken
,
result
)
.
then
(
resolve
)
.
catch
(
reject
);
}
break
;
case
'독일어'
:
if
(
detect_body
.
langCode
==
"ko"
||
detect_body
.
langCode
==
"de"
)
{
language
=
"de"
;
source
=
detect_body
.
langCode
==
"ko"
?
"ko"
:
"de"
;
target
=
source
==
"ko"
?
"de"
:
"ko"
;
//papago 번역 option
var
options
=
{
url
:
translate_api_url
,
form
:
{
source
:
source
,
target
:
target
,
text
:
event
.
message
.
text
},
headers
:
config
.
naver_header
};
request
.
post
(
options
,
function
(
error
,
response
,
body
)
{
if
(
!
error
&&
response
.
statusCode
==
200
)
{
// JSON
var
objBody
=
JSON
.
parse
(
response
.
body
);
// Message 잘 찍히는지 확인
result
.
text
=
objBody
.
message
.
result
.
translatedText
;
console
.
log
(
result
.
text
);
//번역된 문장 보내기
client
.
replyMessage
(
event
.
replyToken
,
result
)
.
then
(
resolve
)
.
catch
(
reject
);
}
});
}
else
{
result
.
text
=
"언어를 감지할 수 없습니다. \n 번역 언어는 한글 또는 독일어만 가능합니다."
;
client
.
replyMessage
(
event
.
replyToken
,
result
)
.
then
(
resolve
)
.
catch
(
reject
);
}
break
;
case
'프랑스어'
:
if
(
detect_body
.
langCode
==
"ko"
||
detect_body
.
langCode
==
"fr"
)
{
language
=
"fr"
;
source
=
detect_body
.
langCode
==
"ko"
?
"ko"
:
"fr"
;
target
=
source
==
"ko"
?
"fr"
:
"ko"
;
//papago 번역 option
var
options
=
{
url
:
translate_api_url
,
form
:
{
source
:
source
,
target
:
target
,
text
:
event
.
message
.
text
},
headers
:
config
.
naver_header
};
request
.
post
(
options
,
function
(
error
,
response
,
body
)
{
if
(
!
error
&&
response
.
statusCode
==
200
)
{
// JSON
var
objBody
=
JSON
.
parse
(
response
.
body
);
// Message 잘 찍히는지 확인
result
.
text
=
objBody
.
message
.
result
.
translatedText
;
console
.
log
(
result
.
text
);
//번역된 문장 보내기
client
.
replyMessage
(
event
.
replyToken
,
result
)
.
then
(
resolve
)
.
catch
(
reject
);
}
});
}
else
{
result
.
text
=
"언어를 감지할 수 없습니다. \n 번역 언어는 한글 또는 프랑스어만 가능합니다."
;
client
.
replyMessage
(
event
.
replyToken
,
result
)
.
then
(
resolve
)
.
catch
(
reject
);
}
break
;
case
'러시아어'
:
if
(
detect_body
.
langCode
==
"ko"
||
detect_body
.
langCode
==
"ru"
)
{
language
=
"ru"
;
source
=
detect_body
.
langCode
==
"ko"
?
"ko"
:
"ru"
;
target
=
source
==
"ko"
?
"ru"
:
"ko"
;
//papago 번역 option
var
options
=
{
url
:
translate_api_url
,
form
:
{
source
:
source
,
target
:
target
,
text
:
event
.
message
.
text
},
headers
:
config
.
naver_header
};
request
.
post
(
options
,
function
(
error
,
response
,
body
)
{
if
(
!
error
&&
response
.
statusCode
==
200
)
{
// JSON
var
objBody
=
JSON
.
parse
(
response
.
body
);
// Message 잘 찍히는지 확인
result
.
text
=
objBody
.
message
.
result
.
translatedText
;
console
.
log
(
result
.
text
);
//번역된 문장 보내기
client
.
replyMessage
(
event
.
replyToken
,
result
)
.
then
(
resolve
)
.
catch
(
reject
);
}
});
}
else
{
result
.
text
=
"언어를 감지할 수 없습니다. \n 번역 언어는 한글 또는 러시아어만 가능합니다."
;
client
.
replyMessage
(
event
.
replyToken
,
result
)
.
then
(
resolve
)
.
catch
(
reject
);
}
break
;
case
'태국어'
:
if
(
detect_body
.
langCode
==
"ko"
||
detect_body
.
langCode
==
"th"
)
{
language
=
"th"
;
source
=
detect_body
.
langCode
==
"ko"
?
"ko"
:
"th"
;
target
=
source
==
"ko"
?
"th"
:
"ko"
;
//papago 번역 option
var
options
=
{
url
:
translate_api_url
,
form
:
{
source
:
source
,
target
:
target
,
text
:
event
.
message
.
text
},
headers
:
config
.
naver_header
};
request
.
post
(
options
,
function
(
error
,
response
,
body
)
{
if
(
!
error
&&
response
.
statusCode
==
200
)
{
// JSON
var
objBody
=
JSON
.
parse
(
response
.
body
);
// Message 잘 찍히는지 확인
result
.
text
=
objBody
.
message
.
result
.
translatedText
;
console
.
log
(
result
.
text
);
//번역된 문장 보내기
client
.
replyMessage
(
event
.
replyToken
,
result
)
.
then
(
resolve
)
.
catch
(
reject
);
}
});
}
else
{
result
.
text
=
"언어를 감지할 수 없습니다. \n 번역 언어는 한글 또는 태국어만 가능합니다."
;
client
.
replyMessage
(
event
.
replyToken
,
result
)
.
then
(
resolve
)
.
catch
(
reject
);
}
break
;
case
'인도네시아어'
:
if
(
detect_body
.
langCode
==
"ko"
||
detect_body
.
langCode
==
"id"
)
{
language
=
"id"
;
source
=
detect_body
.
langCode
==
"ko"
?
"ko"
:
"id"
;
target
=
source
==
"ko"
?
"id"
:
"ko"
;
//papago 번역 option
var
options
=
{
url
:
translate_api_url
,
form
:
{
source
:
source
,
target
:
target
,
text
:
event
.
message
.
text
},
headers
:
config
.
naver_header
};
request
.
post
(
options
,
function
(
error
,
response
,
body
)
{
if
(
!
error
&&
response
.
statusCode
==
200
)
{
// JSON
var
objBody
=
JSON
.
parse
(
response
.
body
);
// Message 잘 찍히는지 확인
result
.
text
=
objBody
.
message
.
result
.
translatedText
;
console
.
log
(
result
.
text
);
//번역된 문장 보내기
client
.
replyMessage
(
event
.
replyToken
,
result
)
.
then
(
resolve
)
.
catch
(
reject
);
}
});
}
else
{
result
.
text
=
"언어를 감지할 수 없습니다. \n 번역 언어는 한글 또는 인도네시아어만 가능합니다."
;
client
.
replyMessage
(
event
.
replyToken
,
result
)
.
then
(
resolve
)
.
catch
(
reject
);
}
break
;
case
'베트남어'
:
if
(
detect_body
.
langCode
==
"ko"
||
detect_body
.
langCode
==
"vi"
)
{
language
=
"vi"
;
source
=
detect_body
.
langCode
==
"ko"
?
"ko"
:
"vi"
;
target
=
source
==
"ko"
?
"vi"
:
"ko"
;
//papago 번역 option
var
options
=
{
url
:
translate_api_url
,
form
:
{
source
:
source
,
target
:
target
,
text
:
event
.
message
.
text
},
headers
:
config
.
naver_header
};
request
.
post
(
options
,
function
(
error
,
response
,
body
)
{
if
(
!
error
&&
response
.
statusCode
==
200
)
{
// JSON
var
objBody
=
JSON
.
parse
(
response
.
body
);
// Message 잘 찍히는지 확인
result
.
text
=
objBody
.
message
.
result
.
translatedText
;
console
.
log
(
result
.
text
);
//번역된 문장 보내기
client
.
replyMessage
(
event
.
replyToken
,
result
)
.
then
(
resolve
)
.
catch
(
reject
);
}
});
}
else
{
result
.
text
=
"언어를 감지할 수 없습니다. \n 번역 언어는 한글 또는 베트남어만 가능합니다."
;
client
.
replyMessage
(
event
.
replyToken
,
result
)
.
then
(
resolve
)
.
catch
(
reject
);
}
break
;
case
'[언어를 변경합니다]'
:
send
=
{
'message'
:
{
"type"
:
"text"
,
"text"
:
"언어를 선택하세요."
,
"quickReply"
:
{
"items"
:
[{
"type"
:
"action"
,
"action"
:
{
"type"
:
"message"
,
"label"
:
"영어"
,
"text"
:
"영어"
}
},
{
"type"
:
"action"
,
"action"
:
{
"type"
:
"message"
,
"label"
:
"일본어"
,
"text"
:
"일본어"
}
},
{
"type"
:
"action"
,
"action"
:
{
"type"
:
"message"
,
"label"
:
"중국어"
,
"text"
:
"중국어"
}
},
{
"type"
:
"action"
,
"action"
:
{
"type"
:
"message"
,
"label"
:
"스페인어"
,
"text"
:
"스페인어"
}
},
{
"type"
:
"action"
,
"action"
:
{
"type"
:
"message"
,
"label"
:
"독일어"
,
"text"
:
"독일어"
}
},
{
"type"
:
"action"
,
"action"
:
{
"type"
:
"message"
,
"label"
:
"프랑스어"
,
"text"
:
"프랑스어"
}
},
{
"type"
:
"action"
,
"action"
:
{
"type"
:
"message"
,
"label"
:
"러시아어"
,
"text"
:
"러시아어"
}
},
{
"type"
:
"action"
,
"action"
:
{
"type"
:
"message"
,
"label"
:
"태국어"
,
"text"
:
"태국어"
}
},
{
"type"
:
"action"
,
"action"
:
{
"type"
:
"message"
,
"label"
:
"인도네시아어"
,
"text"
:
"인도네시아어"
}
},
{
"type"
:
"action"
,
"action"
:
{
"type"
:
"message"
,
"label"
:
"베트남어"
,
"text"
:
"베트남어"
}
}
]
}
}
}
console
.
log
(
"response_status"
);
console
.
log
(
response
.
statusCode
);
if
(
!
error
&&
response
.
statusCode
==
200
)
{
client
.
replyMessage
(
event
.
replyToken
,
send
.
message
)
.
then
(
resolve
)
.
catch
(
reject
)
}
break
;
case
'[음성 듣기]'
:
var
message
=
{
type
:
'text'
,
text
:
''
};
if
(
voice
)
{
voice
=
false
;
message
.
text
=
'음성 듣기 off'
}
else
{
voice
=
true
;
message
.
text
=
'음성 듣기 on'
}
client
.
replyMessage
(
event
.
replyToken
,
message
)
.
then
(
resolve
)
.
catch
(
reject
);
break
;
case
'[문법을 검사합니다]'
:
break
;
default
:
//영어로 번역
if
(
!
voice
)
{
if
(
detect_body
.
langCode
==
"ko"
||
detect_body
.
langCode
==
language
)
{
source
=
detect_body
.
langCode
==
"ko"
?
"ko"
:
language
;
target
=
source
==
"ko"
?
language
:
"ko"
;
//papago 번역 option
var
options
=
{
url
:
translate_api_url
,
// 한국어(source : ko), 영어(target: en), 카톡에서 받는 메시지(text)
form
:
{
source
:
source
,
target
:
target
,
text
:
event
.
message
.
text
},
headers
:
config
.
naver_header
};
request
.
post
(
options
,
function
(
error
,
response
,
body
)
{
if
(
!
error
&&
response
.
statusCode
==
200
)
{
// JSON
var
objBody
=
JSON
.
parse
(
response
.
body
);
// Message 잘 찍히는지 확인
result
.
text
=
objBody
.
message
.
result
.
translatedText
;
console
.
log
(
result
.
text
);
//번역된 문장 보내기
client
.
replyMessage
(
event
.
replyToken
,
result
)
.
then
(
resolve
)
.
catch
(
reject
);
}
});
}
else
{
result
.
text
=
"언어를 감지할 수 없습니다."
;
client
.
replyMessage
(
event
.
replyToken
,
result
)
.
then
(
resolve
)
.
catch
(
reject
);
}
}
else
//음성 듣기 on
{
if
(
detect_body
.
langCode
==
"en"
)
{
let
params
=
{
'Text'
:
event
.
message
.
text
,
'OutputFormat'
:
'mp3'
,
'VoiceId'
:
'Matthew'
};
console
.
log
(
params
);
Polly
.
synthesizeSpeech
(
params
,
(
err
,
data
)
=>
{
if
(
err
)
{
console
.
log
(
err
);
}
else
if
(
data
)
{
if
(
data
.
AudioStream
instanceof
Buffer
)
{
fs
.
writeFile
(
"public/speech.m4a"
,
data
.
AudioStream
,
function
(
err
)
{
if
(
err
)
{
return
console
.
log
(
err
);
}
console
.
log
(
"The file was saved!"
);
// 메시지 보내기
console
.
log
(
response
.
statusCode
);
//200
if
(
!
error
&&
response
.
statusCode
==
200
)
{
voice_client
.
replyAudio
(
event
.
replyToken
,
{
'originalContentUrl'
:
"https://transpenguin.tk/speech.m4a"
,
'duration'
:
20000
})
.
then
(
resolve
)
.
catch
(
reject
)
}
});
}
}
});
}
else
{
result
.
text
=
"언어를 감지할 수 없습니다."
;
client
.
replyMessage
(
event
.
replyToken
,
result
)
.
then
(
resolve
)
.
catch
(
reject
);
}
}
break
;
}
}
}
});
}
// 메시지의 언어가 영어 또는 한국어가 아닐 경우
else
{
result
.
text
=
"언어를 감지할 수 없습니다. \n 번역 언어는 한글 또는 영어만 가능합니다."
;
client
.
replyMessage
(
event
.
replyToken
,
result
)
.
then
(
resolve
)
.
catch
(
reject
);
}
}
);
});
});
}
app
.
listen
(
3000
,
function
()
{
console
.
log
(
"Linebot listening on port 3000!"
);
});
app
.
listen
(
3000
,
function
()
{
console
.
log
(
"Linebot listening on port 3000!"
);
});
\ No newline at end of file
...
...
Please
register
or
login
to post a comment