[Slack Bot] blocks를 사용하여 URL이 포함 된 메시지를 보낼 때 Slack에서 URL을 확장하는 방법
방법
blocks
를 사용하는 경우 unfurled,_links
를 true로 설정하고 text
에 slack에서 확장하려는 URL을 입력하면 Slack에서 URL이 확장됩니다.※
text
에 포함되는 URL만 전개되는 것 같습니다.※
blocks
이나 attachments
내의 URL은 전개되어 있지 않은 것 같습니다.예 :
var url = "https://hooks.slack.com/services/xxxxx";//incoming webhooksのURL
var payload = {
"text" : "<https://hatenablog.com>",
"unfurl_links": true,
"blocks" : [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "Qiita: <https://www.qiita.com>"
}
}
],
"attachments" : [
{
"color": "#FD8F07",
"blocks" : [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "Amebaブログ <https://ameblo.jp/>"
}
}
]
}
]
};
var options = {
"method" : "POST",
"contentType" : "application/json",
"payload" : JSON.stringify(payload)
};
var response = UrlFetchApp.fetch(url, options);
실행 결과
text, blocks, attachments의 관계
현재의 Slack의 chat.postMessage API의
text
, text
, blocks
의 관계는 이하와 같이 되어 있는 것 같습니다.텍스트
blocks
attachments
slack에 표시
1
예
예
예
blocks + attachments
2
예
예
없음
blocks
3
예
없음
예
text + attachments
4
예
없음
없음
텍스트
5
없음
예
예
blocks + attachments
6
없음
예
없음
blocks
7
없음
없음
예
attachments
8
없음
없음
없음
오류
attachments 및 text 정보
blocks
를 사용하지 않는 경우 : blocks
의 값이 Slack에 표시됩니다.text
를 사용하는 경우 : blocks
의 값이 Slack에 표시되지 않습니다 되어있는 것 같습니다.
text는 본래 필수 항목입니다만, blocks나 attachments가 있는 경우는 하늘에서 OK같군요(blocks가 대신이라고 하는 표기는 발견되지 않았습니다만…).
chat.postMessage method | Slack
URL 확장
chat.postMessage method | Slack
이
text
를 true 로 하면(자) 전개되는 것 같습니다.그러나, 이 대상이 되고 있는 것은 아무래도
unfurled,_links
의 곳만 같네요.Incoming Webhooks가 아니라 Token을 사용한 경우?
위의 사양과 동일합니다.
token을 사용하면 다음과 같은 느낌이 듭니다.
var url = 'https://slack.com/api/chat.postMessage';
var token = 'xoxb-xxxxxxxxxx'; //tokenを入力する
var payload = {
"channel" : "{ChannelID or Channel Name}",
"text" : "<https://hatenablog.com>",
"unfurl_links": true,
"blocks" : [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "Qiita: <https://www.qiita.com>"
}
}
],
"attachments" : [
{
"color": "#FD8F07",
"blocks" : [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "Abemaブログ <https://ameblo.jp/>"
}
}
]
}
]
};
var options = {
"method" : "POST",
"contentType" : "application/json",
"payload" : JSON.stringify(payload)
};
var response = UrlFetchApp.fetch(url, options);
요약
text
감사합니다.참고
Slack의 Incoming Webhooks에서 게시 한 URL이 전개되지 않아 곤란한 이야기 - Qiita
Slack API로 링크 열기 - Qiita
Reference
이 문제에 관하여([Slack Bot] blocks를 사용하여 URL이 포함 된 메시지를 보낼 때 Slack에서 URL을 확장하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yoshitake_1201/items/9ae3a48373bfafa89e97텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)