[Slack Bot] blocks를 사용하여 URL이 포함 된 메시지를 보낼 때 Slack에서 URL을 확장하는 방법

12776 단어 슬랙slackbot

방법


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

    좋은 웹페이지 즐겨찾기