質問: ### 前提・実現したいこと Slack APIのchat.postMessage をつかってgoogle app engineからslackへpostしたいです。 その際にattachmentsを上手くつけられないので、その点を質問したいです。 ### 発生している問題・エラーメッセージ ``` v := url.Value{} v.Add("token", "hoge") v.Add("channel", "@"+SlackAccountID) v.Add("text", "foo") req, err := http.NewRequest(http.MethodPost, PostURL, strings.NewReader(v.Encode())) req.Header.Add("Content-Type", "application/x-www-form-urlencoded") resp, err := urlfetch.Client(c).Do(req) ``` とするとメッセージを送ることまでできるのですが、 attachmentsは入れ子での指定(?) のためかいろ受け渡すことができません。 どのようにすれば指定できるでしょうか? なお、slackのリクエストはjson形式では送れないようです。 > > Present these parameters as part of an application/x-www-form-urlencoded querystring or POST body. application/json is not currently accepted. > > > どうぞよろしくおねがいしますm(__)m
回答: こんにちは。 GoにもSlackAPIにも触ったことがないため内容に踏み込んだ回答ができず申し訳ないですが、 attachmentsのデータ例とその注意書きを見る限りでは、「POSTでフォームデータとして送信するが、パラメータattachmentsはそのValueにjson形式のデータを入れる」というように読み取れました。 質問のAPIドキュメント中に以下の記述が見つかりましたので、間違いないと思います。 > > The optional `attachments` argument should contain a JSON-encoded array of attachments. > > >