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.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (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.)