SlackBOT Node.js axios await async를 사용한 POST 요청
소개
최근 자바스크립트에서 GET, POST를 요청하려면 axios
그것을 해결하기 위해 async
await
를 사용한 POST 요청 샘플 코드
SlackBOT이 지정된 채널에 텍스트를 게시하도록 하는 코드입니다.カスタムインテグレーションではなく、「App」の方です
기본 POST 요청이므로 응용 프로그램은 효과가 있다고 생각합니다.
코드
node.jsconst 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.jsconst test = async () => {
const result = await postSlack('#general','こんにちはせかい')
console.log('result: ' + JSON.stringify(result.data))
}
결과
잘 움직이지 않으면
SlackApp의 관리 화면에서 "OAuth & Permissions"→에서 다음 권한을 부여하십시오 (불필요한 권한이 있다고 생각하지만 개인 설정입니다.
channels:manage
channels:read
chat:write
chat:write.customize
chat: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.
Reference
이 문제에 관하여(SlackBOT Node.js axios await async를 사용한 POST 요청), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/merarli/items/ff5f8f78b3525f5afb33
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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:manage
channels:read
chat:write
chat:write.customize
chat: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.
Reference
이 문제에 관하여(SlackBOT Node.js axios await async를 사용한 POST 요청), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/merarli/items/ff5f8f78b3525f5afb33텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)