OikerU

カネを増やす、ライフをよくする、IT関連も発信・相談可能

Technology

Salesforce2Slack Integration with Web API

投稿日:

前回、Webhook URLでSalesforceから、Slackのチャンネルに投稿する記事を公開した。非常にシンプルでした。今回、やや複雑なSlack Web APIを使って、投稿することをチャレンジしてみたいと思います。Salesforce側で、HttpのPOSTメソッドでWebhook URLを用いて、Slackに投稿することが十分です。投稿・リンク付き投稿・添付ファイル付き投稿もできます。しかし、普段のインテグレーションはWEB APIを使って、アクセスし、操作するです。そして、セキュリティ問題や権限問題などを考慮する場合、ズバリWeb API使用です。Slack web api もちゃんとしたアクセス権限を設定可能です。アプリケーションを作成後にスコープを設定するによって、外部アプリケーション(Salesforceなど)がSlackにアクセスする範囲を決められるです。外部にアクセスしてほしくないチャンネルはあるでしょう。そこにある添付ファイルなどがあるでしょう。不注意によって、アクセスされてしまったとか、なにが起こり、どんなことにつながり、どれほど炎上になってしまうかわからないので、慎重に外部にアクセスしてほしい範囲を決めたほうが間違いないです。slack webhook urlは確かに簡単ですが、とはいえ、slack web apiで外部からアクセスして、投稿もそんなに複雑じゃないけどね。エンドポイントは変わり、設定もやや多いだけです。

SalesforceとSlackをつながるため、Slack Web APIが必要

SalesforceとSlackをつながるため、Slack Web APIが必要。WEB APIを用いて、Slackチャンネルに投稿するにはSlack側で、アプリケーションを作成しないと使えない。つまろ アプリケーションの作成を行わなければSlack Web APIを使用することができません よ。

Slack Web APIのアプリケーション作成

  1. Slack API サイトにアクセスする(もちろん、ログイン情報が必要)
  2. 新規アプリケーションを作成する(Start BuildingボタンもYour AppsもOK)

Slack API サイト

新規アプリケーション作成

アプリケーション名の入力と含みたいワークスペースを選択する

アプリケーション作成後に OAuth & Permissions

権限で、スコープを設定する、僕の場合、SalesforceでSlackに投稿だけなので、
chat:writer:user権限に設定しています。
スコープを設定してから、Install App to Workspace緑のボタンも有効になります。
投稿したいワークスペースをインストールすればいい

上記の画像のインストールボタンによって、対象ワークスペースをインストールしてから下記のようになります。アクセストークンが発行されます(機密情報だぞ)
「xoxp-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx」の部分
これを使って、SalesforceのAPEXでHTTPメソッドPOSTで送信すれば、投稿可能

Apexサンプルコード(匿名コンソール)

終わりに

ポスト設定に誤りがある場合は
・okはfalseでerrorにはinvalid_authが設定されて戻されます。
・okはfalseでerrorにはnot_in_channelが設定されて戻されます。
様々なエラーありますよ。

webhook URLで一番簡単だが Scopeを使ってSlackが公開しているどの機能を範囲として公開することができます。機能の制限せずに一括で設定したいと思うかもしれませんが、アカウント情報など重要なデータへのアクセスもできるため使用範囲を限定して設定するほうが安全にWEB APIを利用することができます。

リファレンス

-Technology
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

git clone エラー128対策

gitで終了コード128エラーとなりリモートリポジトリがクローン出来ないでしょうか 私も今日、同じ問題に遭遇してしまい、2、3時間かかってしまった(泣)。絶対メモしようと思います。やりたいこともかんた …

Saleforce 実行権限 トリガ クラス

こんにちは、管理人の@Salesforce.Zです。普段、 Apex はシステムコンテキストで実行されます。つまり、コード実行時に、現在のユーザの権限、項目レベルセキュリティ、および共有ルールは考慮さ …

Salesforce2Slack Integration インテグレーション シンプル

IT業界では、インテグレーションをすれば、いろいろな製品をつながって、弱点やできないことを補うことができる、良いところですね。今回、Slackの投稿をSalesforceから操作したいので、関連設定や …

Salesforce カスタム設定 カスタムメタデータ 比較 使うべきなのは?

カスタム設定/カスタムメタデータの使用について、どっちを使うべきかをここではっきりできる

Salesforce データセキュリティ プロファイル 共有設定 ロール

こんにちは、管理人の@Salesforce.Zです。Salesforceのセキュリティ体制がきちんと整えている、セキュリティも、大手企業はSalesforce製品を導入する理由の一つです。ここに来た方 …