in
Salesforce
- 29 11月, 2019
APEXからSlackへの通知連携
Slack APIのはSlack APIのTokenを取得することで可能となる。
取得したTokenを利用して通信することでAPEXからの通知が可能になる。
参考
chat.postMessage method | Slack
→今回使用したSlackのメッセージ送信メソッド
public String slackApiCallout() { String apiEndpoint = 'https://slack.com/api/chat.postMessage'; String token = '{発行したトークン}'; String channel = '{通知対象となるチャンネルID}'; String message = '{通知メッセージ本文}'; String params = '?token=' + token + '&channel=' + channel + '&text=' + EncodingUtil.urlEncode(message, 'UTF-8'); Http http = new Http(); HttpRequest req = new HttpRequest(); req.setMethod('POST'); req.setEndpoint(apiEndpoint + params); req.setHeader('Content-Type', 'application/json'); HttpResponse res = http.send(req); return res.getBody(); }
POSTを使用するが、bodyではなくURLパラメータで情報を送る。
そのため、メッセージはURLエンコーディングが必要となる。