SlackBOT Node.js axios await async를 사용한 POST 요청

소개



최근 자바스크립트에서 GET, POST를 요청하려면 axios 그것을 해결하기 위해 async await 를 사용한 POST 요청 샘플 코드

SlackBOT이 지정된 채널에 텍스트를 게시하도록 하는 코드입니다.カスタムインテグレーションではなく、「App」の方です기본 POST 요청이므로 응용 프로그램은 효과가 있다고 생각합니다.

코드



node.js
const axios = require('axios');//npm install axios してね

//Slackにメッセージを送る
//引数1(文字列) : チャンネル名 (例: #勤怠履歴)
//引数2(文字列) : 送りたいメッセージ
const postSlack = async (ch,msg) =>{
    console.log('postSlack...')
    const req_url = 'https://slack.com/api/chat.postMessage'
    console.log('req_url:' + req_url);

    //これを使わずにオブジェクトで送るとJSONの形式ガーーーー!!みたいなErrorがでます
    let params = new URLSearchParams();

    params.append('token','アクセストークン') //正式なものをいれてください
    params.append('channel',ch)
    params.append('text',msg)

    const res = await axios.post(req_url, params)

    return res
}

전화하는 방법



index.js
const test = async () => {
 const result = await postSlack('#general','こんにちはせかい')
 console.log('result: ' + JSON.stringify(result.data))
}

결과





잘 움직이지 않으면
SlackApp의 관리 화면에서 "OAuth & Permissions"→에서 다음 권한을 부여하십시오 (불필요한 권한이 있다고 생각하지만 개인 설정입니다.
channels:managechannels:readchat:writechat:write.customizechat:write.public

발생한 오류


new URLSearchParams()를 사용하지 않을 때 발생한 오류
(node:73150) UnhandledPromiseRejectionWarning: TypeError: Converting circular structure to JSON
    --> starting at object with constructor 'ClientRequest'
    |     property 'socket' -> object with constructor 'TLSSocket'
    --- property '_httpMessage' closes the circle
    at JSON.stringify (<anonymous>)
    at test (/Users/merarli/WebstormProjects/hogehoge/index.js:1143:32)
    at processTicksAndRejections (internal/process/task_queues.js:85:5)
(node:73150) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:73150) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

좋은 웹페이지 즐겨찾기