Slack API를 시작하는 방법을 요약했습니다.
Slack API를 시작하는 방법을 요약했습니다.
목차
※ 루비 사용
Slack에 앱 등록
브라우저에서 다음 페이지에서 Slack API에 로그인합니다.
htps : // s ck. 코 m/시 g 마늘
개발을 위한 작업 공간 만들기
로그인이 끝나면 다음 페이지에서 개발 테스트를위한 작업 공간을 만듭니다.
먼저
+ Create a New Workspace
를 클릭하십시오.만들 작업 공간의 이름을 듣기 때문에 원하는 이름을 입력하고
Next
를 클릭합니다.(필자는 'development'라는 이름으로 설정)
그런 다음 작업 공간을 사용하는 목적을 묻는 메시지를 입력하고
Next
를 클릭하십시오.(필자는 『slack api』라고 기술)
그런 다음 초대할 멤버를 듣기 때문에 무시하고
Skip this step
를 클릭합니다.이것으로 작업 공간 작성이 완료되었습니다.
슬랙 앱 만들기
1. Slack App 만들기
브라우저에서 다음 페이지에서 Slack App을 만듭니다.
htps : // 아피. scck. 이 m/아 ps? 네 w_아 p=1
앱 이름
앱 이름을 임의로 입력
※ 나중에 변경 가능
Development Slack Workspace
앱을 적용 할 작업 공간 (이전에 만든) 선택
※ 나중에 변경 불가이므로 주의
입력/선택 후
Create App
를 클릭하십시오.2. Scopes에서 Slack 앱 권한 설정
Permission
를 클릭하여 이동Add an OAuth Scope
를 클릭 한 후 chat:write
를 선택하여 Scope를 추가합니다.(chat : write)는 Bot의 게시를 허용합니다.
※ 나중에 추가 가능
3. 앱을 workspace에 설치
Scope를 설정한 페이지와 같은 페이지에서,
Install to Workspace
를 클릭하여 Slack 앱을 작업 공간에 설치합니다.다음과 같은 페이지가 표시되므로
Allow
를 클릭하십시오.(작업 공간 없이 앱을 실행해도 좋은지 확인하고 있습니다.)
이것으로 작업공간에 앱 설치가 완료되었습니다.
위의
Bot User OAuth Access Token
나중에 사용하기 때문에 참고.Slack API를 사용하여 메시지 게시
1. Gemfile 추가
Gemfile 만들기
Gemfile
source 'https://rubygems.org'
gem 'http'
gem 'json'
$ bundle install
2. 스크립트 실행을 위한 파일 준비
test.rb
require 'http'
require 'json'
BOT_USER_ACCESS_TOKEN="< 先ほどメモしたBot User OAuth Access Token をコピペ >"
response = HTTP.post("https://slack.com/api/chat.postMessage", params: {
token: BOT_USER_ACCESS_TOKEN,
channel: '#random',
text: 'hello slack',
as_user: true
})
puts JSON.pretty_generate(JSON.parse(response.body))
해설들이
test.rb
# Apiリクエスト送信に用いる
require 'http'
# Jsonデータ作成に用いる
require 'json'
# ACCESS_TOKENを設定
# Scopeへのアクセスに利用する
BOT_USER_ACCESS_TOKEN="< 先ほどメモしたBot User OAuth Access Token をコピペ >"
# HTTPリクエストを特定にSlackApiのURLに送信する
# chat.postMessage では投稿を作成する
# paramsの中身は指定された値を渡す
response = HTTP.post("https://slack.com/api/chat.postMessage", params: {
token: BOT_USER_ACCESS_TOKEN,
channel: '#random',
text: 'hello slack',
as_user: true
})
puts JSON.pretty_generate(JSON.parse(response.body))
params 내용에 대해
token
인증 토큰 지정
채널
메시지를 게시할 채널 지정
텍스트
메시지 지정
as_user
true를 전달하면 인증된 사용자로 메시지가 게시됨
자세한 것은 이 페이지에 기재되어 있습니다.
htps : // 아피. scck. 코 m/메욘 ds/짱 t. 포스트 메시게
이번에는 Messe를 게시하기 위해
chat.postMessage
를 사용했지만 그 밖에도 다양한 api 메소드가 준비되어 있습니다.htps : // 아피. scck. 코 m / 메조 ds
Bot을 채널에 초대하기
Api로 메시지를 전송하는 데 사용되는 채널 메시지에서
/invite @<Bot_Name>
를 입력하여 Bot을 채널에 초대합니다.3. 실행
다음 명령으로 스크립트 실행
$ bundle exec ruby test.rb
{
"ok": true,
"channel": "...",
"ts": "...",
"message": {
"bot_id": "...",
"type": "message",
"text": "hello slack",
"user": "...",
"ts": "...",
"team": "...",
"bot_profile": {
"id": "...",
"deleted": false,
"name": "test_app",
"updated": ...,
"app_id": "...",
"icons": {
"image_36": "https://a.slack-edge.com/80588/img/plugins/app/bot_36.png",
"image_48": "https://a.slack-edge.com/80588/img/plugins/app/bot_48.png",
"image_72": "https://a.slack-edge.com/80588/img/plugins/app/service_72.png"
},
"team_id": "..."
}
}
실행 결과가 위와 같이 되어 있으면 성공입니다!
슬랙을 확인합시다!
반영되고 있네요, 이것으로 종료입니다.
고마워요
오류 정보
오류에 대해 간단히 정리했으므로 참고로
channel_not_found
채널이 존재하지 않음
not_authed
인증 토큰이 설정되지 않았거나 잘못되었습니다.
missing_scope
범위 권한이 올바르게 설정되지 않은 설정을 변경하면 reinstall이 필요합니다.
not_in_channel
채널에 Bot이 추가되지 않음
Reference
이 문제에 관하여(Slack API를 시작하는 방법을 요약했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/naok1207/items/b32523deb372e6978f84텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)