Slack Events API로 작업하고 이벤트 알림을 수신하는 동안 메시지가 다음 위치로 전송되었는지 확인하기가 어려웠습니다.
요청 본문에는 메시지가 전송 된 채널 유형을 식별하는 필드가 없습니다. 따라서 채널 유형에 따라 애플리케이션에 대해 다른 동작을 원하는 경우 (예 : 여러 사람 채널에서 메시지를 보낸 사용자에게 태그 지정) ),이를 수행하는 명확한 방법이 없습니다.
채널 유형에 관계없이 요청은 항상 동일한 형식을 따릅니다.
{
:token=>"some_auth_token",
:team_id=>"T1234ABCD",
:api_app_id=>"A1234ABCD",
:event=> {
:type=>"message",
:user=>"U1234ABCD",
:text=>"Who loves Orange Soda?",
:ts=>"1486219313.000034",
:channel=>"D1234ABCD",
:event_ts=>"1486219313.000034"
},
:type=>"event_callback",
:authed_users=>["U1234ABCD"]
}
내가 알아 차린 것은 (Slack 문서에서는 찾을 수 없지만) 채널 식별자는 사용되는 채널 유형에 따라 해당 문자로 시작한다는 것입니다.
:channel=>"D1234ABCD"
:channel=>"C1234ABCD"
:channel=>"G1234ABCD"
따라서 채널 ID의 첫 번째 문자를 확인하여 채널 유형을 결정할 수 있습니다.
예를 들어 Ruby에서는 다음 방법을 사용합니다.
def channel?(channel_id)
return true if channel_id.start_with?("C", "G")
false
end
또한 Slack에서 예상되는 동작임을 확인하는 응답을 받았으므로 이러한 방식으로 채널 유형을 가정하는 것이 안전해야합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다