2016-08-19 3 views
3

저는 Python을 사용하고 있으며, Slacker API를 사용하여 여유 채널에 메시지를 게시하고 메시지를 멋지게 게시합니다.Slack API : 버튼을 클릭 할 때 어떤 일이 발생합니까?

지금 내가하고 싶은 것은 라고하는 버튼을 만들고 추가 정보을 클릭하면 클릭 한 항목의 목록을 표시하고 싶습니다. 그러나 버튼을 클릭하면, slackbot 다음은

oh no, something weng wrong, Please try that again은 예입니다 말한다 : link 아래

내 JSON과 코드

msg = "<!here> Hello guys! " 
moreInfo = ['person', 'person2', 'person3'] 
message = [{ 
"title": "Lunch time has been decided", 
"text": "You will also be joining", 
"actions": [ 
    { 
     "name": "buttonName", 
     "text": "More Info", 
     "type": "button", 
     "value": moreInfo 
    }] 

}] 
slack.chat.post_message('#teamChannel', msg, username='my_username', attachments=message) 

이며,이 인 무엇은 여유 때처럼 보이는 내가 클릭 자세한 정보 버튼. enter image description here

도움을 주시면 감사하겠습니다. 감사합니다 :)

답변

3

이미 버튼 끝점 설정이 있습니까? 그렇지 않은 경우 오류 메시지가 표시됩니다.

내가 실수 한 것과 동일한 실수를 한 경우 잘못된 토큰을 사용하고 있습니다. 이것은 Slack 문서에서 명백하지 않습니다. 첨부 파일 (예 : 대화식 버튼) 사용을 비롯하여 사용자 정의 통합 봇 토큰으로 메시지를 게시 할 수 있습니다. 그러나 실제로 버튼 조작에 응답하고 싶다면 앱을 완전히 공개하지 않으려는 경우에도 본격적인 슬랙 앱 토큰을 사용하여 메시지를 게시해야합니다. 즉, oauth2 플로우의 엔드 포인트를 작성하여 슬랙 팀에 앱을 추가하고 여기에 봇 토큰을 확보해야합니다.

  1. 아직 작성하지 않은 경우 슬랙 앱을 만듭니다.
  2. 는 OAuth는 GET 끝점을 만듭니다 (예를 들어, /slack/authorize)
  3. 당신의 엔드 포인트가 쿼리 매개 변수에 code를 기대한다하여 인증 엔드 포인트
  4. 에 여유 응용 프로그램의 "리디렉션 URI"를 설정합니다. 앱의 client_id, client_secretcode으로 슬랙 API oauth.access을 호출하여 앞서 언급 한 앱 토큰을 교환합니다. 봇의 대화 형 메시지를 게시하려면 봇 토큰 ("xoxo-"접두어)이 필요합니다.
+1

감사합니다. 정확합니다. 끝점을 만들어야했습니다. 슬랙 API 문서는 다소 조직적이지 않다. 알아 내기가 힘들었다. –

+0

나는 그것에 관한 질문이있다. API 문서에 따르면 사용자 버튼 액션에 대한 응답은 원래 메시지를 대체합니다. – ramin

+0

@ramin 원래 메시지를 바꿀 필요는 없지만 원래 메시지의 message_ts (타임 스탬프)를 chat.update API에 추가하여 추가 할 수 있습니다. – Keller

관련 문제