Warning: Use of undefined constant SECURE_AUTH_COOKIE - assumed 'SECURE_AUTH_COOKIE' (this will throw an Error in a future version of PHP) in /home/oikeru/oikeru.com/public_html/wp-includes/pluggable.php on line 805

Warning: Use of undefined constant LOGGED_IN_COOKIE - assumed 'LOGGED_IN_COOKIE' (this will throw an Error in a future version of PHP) in /home/oikeru/oikeru.com/public_html/wp-includes/user.php on line 527
Salesforce2Slack Integration with Web API | カネ | ライフ | 技術

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

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

関連記事

再出品大変 新ラクマ フリル 自動出品ツール black cat 自動で稼げる

フリマ運営するなら、出品が大変です。僕もそんな感じです。撮影はもちろん、出品も大変、さらに売れない時に再出品もしないといけない。結構労力が必要な仕事です。その中で、出品と再出品の労力と時間を節約してく …

SFDC Salesforce フィールドサービス Field Service コンサルタント資格 consultant certification

こんにちは、管理人の@Salesforce.Zです。 いよいよField Service認定試験を受験しようと思った。まず、概要を整理しようと、受験ガイドも記載しているが、なんだか書かないと頭に定着し …

Salesforce Field Service コンサルタント試験 想定問題集1

FSL Welcome to your Salesforce Field Service EXAM 1-20 回答制限30mins 1 out of 0 back

Salesforce 主従関係 所有者について以外に知らない子が多い

こんにちは、管理人の@Salesforce.Zです。 主従関係ってもう十分、 ほとんどのcoder の頭に定着したと思います。しかし、これが知っていますか。所有者の話。子sObjectに所有者項目がな …

【攻撃実例】 wordpress管理者へ セキュリティをしっかりしよう

サイトに症状がなくても、あなたのサイトにもう既にウィルス感染しているかもしれません。サーバーのファイルをひたすらみてみてください。おかしいファイルありませんか。稼いでるサイトの裏に実はウィルスファイルが置かれていることが別のケース対応で、ついでに発見したことがあります。