API를 사용하여 LINE WORKS BOT 등록
하지만 "Console 화면에는 로그인하고 싶지 않지만, Bot를 등록할 권한은 주고 싶다"라든지 "유사한 (결코 같지 않다) Bot를 유저마다 등록하고 싶다"등의 희귀한 요구가 , 타마에 있습니다. (그래, 나에게는 있었어요 ^^)
그럴 때!
API를 사용하여 BOT 등록하면 요청을 실현시킬 수 있습니다 YO!
LINE WORKS API에서 BOT를 등록하려면
LINE WORKS BOT를 등록하려면 여러 API를 사용합니다.
API를 다음 순서로 사용하여 BOT를 등록한 후 지정된 사용자에게 메시지를 보냅니다.
실제 코드
글쎄, 그럼 코드를 노출하고 싶습니다.
이번에는 나중에 공부하기 위해 JavaScript로 작성하고 있습니다.
npm install request
하고 설치해 둡니다. registerBot.js
const api_id = "api id";
const consumer_key = "consumer key";
const token = "server list token";
const account_id = "[email protected]";
const domain_id = 00000000;
const callback_url = "https;//www.xyz.jp/callback";
// トーク Bot のテナント登録
const request = require('request');
const uri_text = "https://apis.worksmobile.com/" + api_id;
let options = {
uri: uri_text + "/message/registerBot/v4",
headers: {
"Content-type": "application/json",
"consumerKey": consumer_key,
"Authorization": "Bearer " + token
},
json: {
"name": "test bot",
"photoUrl": "https://developers.worksmobile.com/favicon.png",
"description": "defeat the promise process bot",
"managerList": [account_id]
}
};
request.post(options, (error, response, body) => {
if(body.errorMessage) return;
let botNo = body.botNo;
// トーク Bot のドメイン登録
options.uri = uri_text + "/message/registerBotDomain/v3"
options.json = {
"botNo": botNo,
"domainId": domain_id,
"usePublic": true,
"usePermission": false
}
request.post(options, (error, response, body) => {
if(body.errorMessage) return;
// メッセージ受信サーバー追加
options.uri = uri_text + "/message/setCallback/v2";
options.json = {
"botNo": botNo,
"callbackUrl": callback_url,
"callbackEventList": ["text", "sticker", "image"]
};
request.post(options, (error, response, body) => {
if(body.errorMessage) return;
// トーク Bot からメッセージ送信
options.uri = uri_text + "/message/sendMessage/v2",
options.json = {
"botNo": botNo,
"accountId": account_id,
"content": {"type":"text","text":"BOT 登録が完了しました(^ω^)"}
};
request.post(options, (error, response, body) => {
console.log(body);
if(body.errorMessage) return;
console.log("success");
});
});
});
});
이것을
node registerBot.js
로 실행하면 BOT가 등록됩니다!무사히 BOT 등록이 완료되었습니다(^ω^)
이번 코드는・・・긴!
네 번 API를 실행하기 때문에 알고 있었지만 길다!
가급적 짧게 하려고
options
는 let
하고 사용해 주거나 했는데, 역시 길다.게다가
request
와 Callback
를 4회나 하고 있으므로, 중첩이 깊다.여기에서 , Bot 이용 멤버 등록 API 를 사용해 유저를 한정시키거나 Bot을 포함한 대화방 만들기 API
DB와 연결하여 botNo나 토크룸 ID를 DB에 등록하는 처리를 추가하면 더 중첩됩니다.
한꺼번에 여러 가지를 하려고 하면 점점 계층이 깊고 깊게…
머리가 아픈 이야기입니다! ( ゚Д゚)
이번에는 Callback 함수로 코드를 작성했지만 Javascript에는
promise
라는 객체가 있으며, 이것을 사용하면 계층을 얕고 보기 쉽게 할 수 있는 것 같습니다.Qiita에도 선배님의 기사가 많이 오르고 있으므로 꼭 읽어 보려고 생각합니다!
결론
여기까지 교제 해 주셔서 감사합니다.
다음은 이 코드를 promise
를 사용한 기술로 계층을 얕고, 보기 쉽게 처리를 하고 싶습니다!
『promise 사용할 수 없으면 JavaScript로 코드 쓸 수 있다고 말하지 말아요(웃음)』라고 말해져 눈물이 되었기 때문에가 아닌 데스요.
네, 아니요. 매일 정진 있을 뿐입니다.
· · · 최선을 다하겠습니다 (T T)
더 가득 공부하지 않으면, 라고 느끼는 매일입니다.
그럼 또! (^^)/
참고하겠습니다 m(_ _)m
LINE WORKS Developers
Reference
이 문제에 관하여(API를 사용하여 LINE WORKS BOT 등록), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kunihiros/items/bad2063ee4a8bb6e7dae
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
LINE WORKS Developers
Reference
이 문제에 관하여(API를 사용하여 LINE WORKS BOT 등록), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kunihiros/items/bad2063ee4a8bb6e7dae텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)