Slack API attachmentsチートシート

# attachmentsとは

Slackのメッセージを装飾するもの。
通知系のBotで投稿するメッセージをリッチなものにするのに有効だったりします。
次の画像は、attachmentなしと、attachmentありの比較です。

## attachmentなし

![なし.png](https://qiita-image-store.s3.amazonaws.com/0/79414/b7b07838-58a9-854f-80e0-c23efc1c8e0d.png)


## attachmentあり

![あり.png](https://qiita-image-store.s3.amazonaws.com/0/79414/c37efa74-c2cb-5ad4-09a8-23560a837d6e.png)

# パラメータ

## fallback

### 解説
添付に対するプレーンテキストでの要約。
ドキュメントによると、フォーマットされたテキストを表示しないクライアントで表示されるとあるが、未だ表示されるクライアント、シーンに出くわしたことはない。
fallbackという名の通り、念のためattachments内容の要約テキストを指定しておくとよいかと。

### 指定例

```
"fallback": "This is test attachment",
```

## color

### 解説
attachmentsの色を指定する。
プリセットの3種類があり、それ以外にもカラーコードで指定することも可能。

#### プリセット
* good
* warning
* danger  

それぞれ信号の、青、黄色、赤のような色です。

#### カラーコードでの指定

カラーコードで自由な色を指定することも可能です。
![スクリーンショット 2017-07-01 14.24.48.png](https://qiita-image-store.s3.amazonaws.com/0/79414/3bbca395-8744-8ad1-f449-84992c2dd4ef.png)

#### デフォルト

colorが未指定のattachmentsは次のように表示されます。
![スクリーンショット 2017-07-01 14.27.10.png](https://qiita-image-store.s3.amazonaws.com/0/79414/671b1a87-1786-78d4-28b5-37edf1c12536.png)

### 指定例

```:プリセット
"color": "good",
```
```:カラーコード
"color": "#FFC0CB",
```

## pretext

### 解説
attachmentsブロック(↑のcolorの横に表示される領域)の上に表示されるテキストを指定します。
以下のキャプチャのようにメッセージ本体に`text`をしている場合は、見分けがつかなくなります。

![pretext.png](https://qiita-image-store.s3.amazonaws.com/0/79414/9a3d159a-90ed-acdf-6178-72a9310b0cbf.png)

複数のattachmentを付加する場合は、有効ですね。

![スクリーンショット 2017-07-01 14.39.05.png](https://qiita-image-store.s3.amazonaws.com/0/79414/6bd1f565-8461-de6d-0e23-ba5afd071e8b.png)

### 指定例

```
"pretext": "これがpretext",
```

## author parameters

### 解説
Authorの情報を指定する一連のパラメータです(`author_`で始まる)。

![author.png](https://qiita-image-store.s3.amazonaws.com/0/79414/6f1e1a37-51a4-bb06-d08e-7839df124a42.png)

* author_name  
Authorの名前
* author_link  
Authorのリンク(author_nameがリンクテキストになる)
* author_icon  
Authorのアイコン(画像URLを指定する)

### 指定例

```
"author_name": "daikiojm",
"author_link": "http://qiita.com/daikiojm",
"author_icon": "https://avatars1.githubusercontent.com/u/10055293?v=3&u=1d1491fc3c27e10e93cc364ee0556a3b768c29b2&s=100"
```

## title

### 解説
attachmentのタイトルです。

![title.png](https://qiita-image-store.s3.amazonaws.com/0/79414/1e64c6a2-20fb-792d-7479-0bd57362b4f0.png)

### 指定例

```
"title": "TEST",
```

## title_link

### 解説
タイトルのリンクです。

### 指定例

```
"title_link": "http://qiita.com/daikiojm",
```

## text

### 解説
attachmentの本文です。

### 指定例

```
"text": "test:goode",
```
```:改行は\nで
"text": "test:goode\ntest2",
```

## fields

### 解説

1つのattachment内に複数のグループを表示させたいときに使用します。
attachment内にattachmentを入れ子表示するイメージ。


![fields.png](https://qiita-image-store.s3.amazonaws.com/0/79414/a08a6dd6-6fe6-5dbc-f554-389607d94140.png)

横並びのfields(shortを指定した場合)
![スクリーンショット 2017-07-01 15.59.15.png](https://qiita-image-store.s3.amazonaws.com/0/79414/0dfc5090-c706-e158-608f-7df06d8b9b21.png)


* title  
グループのタイトル
* value  
グループの内容
* short  
attachmentの半分の横幅で表示させるフラグ

### 指定例

```
"fields": [
    {
        "title": "fields attachment1",
        "value": "fields test",
    },
    {
        "title": "fields attachment2",
        "value": "fields test",
    }
]
```

```:short
"fields": [
    {
        "title": "fields attachment1",
        "value": "fields test",
        "short": "true"
    },
    {
        "title": "fields attachment2",
        "value": "fields test",
        "short": "true"
    }
]
```

## image_url

### 解説
attachmentに埋め込む画像URLを指定する。
対応フォーマットはGIF, JPEG, PNG, BMP

![スクリーンショット 2017-07-01 16.12.41.png](https://qiita-image-store.s3.amazonaws.com/0/79414/20633afd-6c56-cad3-669a-1f843de0a847.png)

### 指定例

```
"image_url": "https://qiita-image-store.s3.amazonaws.com/0/79414/ea00d65c-b9b7-3b97-df98-11d5b2fc6bfa.png",
```

## thumb_url

### 解説
attachmentに埋め込むサムネイル画像URLを指定する。
対応フォーマットはGIF, JPEG, PNG, BMP
`image_url`とは画像の表示のされ方が違う。

![スクリーンショット 2017-07-01 16.18.41.png](https://qiita-image-store.s3.amazonaws.com/0/79414/0286e7c4-2f9b-9511-9096-aa41eb36480b.png)


### 指定例

```
"thumb_url": "https://qiita-image-store.s3.amazonaws.com/0/79414/741aebb5-d320-4eb1-f765-59d462f32515.png",
```


## footer

### 解説

attachmentに埋め込むフッター情報の一連のパラメータです。

![footer.png](https://qiita-image-store.s3.amazonaws.com/0/79414/16d8d735-c4b3-b825-2521-9f664bdd7b42.png)

* footer  
フッター情報を指定します。
最大文字数は300文字
* footer_icon  
フッターアイコンの画像URLを指定する。  
* ts  
attachmentに付加する情報に対するタイムスタンプ(UNIXタイムスタンプ)を指定します。
ログ系の通知ボットなどを実装する際は便利かも(？)

### 指定例

```
"footer": "Send from Python",
"footer_icon": "https://avatars1.githubusercontent.com/u/10055293?v=3&u=1d1491fc3c27e10e93cc364ee0556a3b768c29b2&s=100",
"ts": "1498894191",
```

# 出典

slack API: [Attaching content](https://api.slack.com/docs/message-attachments "Attaching content and links to messages")