Toggle navigation
Toggle navigation
This project
Loading...
Sign in
2019-2-OpenSourceSW
/
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
김형석
2018-12-13 21:50:43 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
9c5f7e4ae706d826c4debc1afe2c29f11b6b922d
9c5f7e4a
1 parent
482d4031
이미지 인식 추가. 번역은 미완성
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
63 additions
and
29 deletions
app.js
app.js
View file @
9c5f7e4
var
express
=
require
(
'express'
);
var
app
=
express
();
const
line
=
require
(
'@line/bot-sdk'
);
const
express
=
require
(
'express'
);
//papago api
var
request
=
require
(
'request'
);
...
...
@@ -14,18 +17,17 @@ var languagedetect_api_url = 'https://openapi.naver.com/v1/papago/detectLangs'
var
client_id
=
'xZMx34y7uru1v8lywZ2d'
;
var
client_secret
=
'p6L7M7WsH9'
;
// create LINE SDK config from env variables
const
config
=
{
channelAccessToken
:
'mnny0MJSezgBXzR9C3Ddcc1Csdb7Y9jkvy2nqV5saOmvR2YOJ1/kj/2M0CNsLA+57B2qDpdUQ7WbCTtIKx/LAJ6Kwfop4tX3up7EM8H9EZK1td6GMbhhCb6wvUFVdb1PcTO4joCv8mspd3ubo8a+gAdB04t89/1O/w1cDnyilFU='
,
channelSecret
:
'bde77633a16fc5bfbd532d5990c6170e'
,
};
// create LINE SDK client
const
client
=
new
line
.
Client
(
config
);
// create Express app
// about Express itself: https://expressjs.com/
const
app
=
express
();
// register a webhook handler with middleware
// about the middleware, please refer to doc
...
...
@@ -35,7 +37,7 @@ app.post('/webhook', line.middleware(config), (req, res) => {
.
then
((
result
)
=>
res
.
json
(
result
))
.
catch
((
err
)
=>
{
console
.
error
(
err
);
res
.
status
(
5
00
).
end
();
res
.
status
(
2
00
).
end
();
});
});
...
...
@@ -46,33 +48,65 @@ function handleEvent(event) {
return
Promise
.
resolve
(
null
);
}
return
new
Promise
(
function
(
resolve
,
reject
)
{
// Naver Papago Translate
var
options
=
{
url
:
translate_api_url
,
// 한국어(source : ko), 영어(target: en), 카톡에서 받는 메시지(text)
form
:
{
'source'
:
'ko'
,
'target'
:
'en'
,
'text'
:
event
.
message
.
text
},
headers
:
{
'X-Naver-Client-Id'
:
client_id
,
'X-Naver-Client-Secret'
:
client_secret
}
};
// Naver Post API
request
.
post
(
options
,
function
(
error
,
response
,
body
){
// Translate API Sucess
if
(
!
error
&&
response
.
statusCode
==
200
){
// JSON
var
objBody
=
JSON
.
parse
(
response
.
body
);
// Message 잘 찍히는지 확인
const
result
=
{
type
:
'text'
,
text
:
objBody
.
message
.
result
.
translatedText
};
console
.
log
(
result
.
text
);
client
.
replyMessage
(
event
.
replyToken
,
result
).
then
(
resolve
).
catch
(
reject
);
}
});
});
// use reply API
//return client.replyMessage(event.replyToken,objBody.message.result.translatedText);
}
//언어 감지 option
var
detect_options
=
{
url
:
languagedetect_api_url
,
form
:
{
'query'
:
event
.
message
.
text
},
headers
:
{
'X-Naver-Client-Id'
:
client_id
,
'X-Naver-Client-Secret'
:
client_secret
}
};
//papago 언어 감지
request
.
post
(
detect_options
,
function
(
error
,
response
,
body
){
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'
){
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
},
headers
:
{
'X-Naver-Client-Id'
:
client_id
,
'X-Naver-Client-Secret'
:
client_secret
}
};
// Naver Post API
request
.
post
(
options
,
function
(
error
,
response
,
body
){
// Translate API Sucess
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
);
}
}
});
});
}
app
.
listen
(
3000
,
function
()
{
console
.
log
(
'Linebot listening on port 3000!'
);
...
...
Please
register
or
login
to post a comment