Oracle Cloud Infrastructureドキュメント

Slack

次に、Slackをデジタル・アシスタント(またはスタンドアロン・スキル)のチャネルとして使用した場合の処理を示します:

  • Slackは、Slackアプリケーションの仲介を通じてデジタル・アシスタントをホスティングします。
  • ユーザーは、Slackユーザー・インタフェースのSlackアプリケーションを使用して、デジタル・アシスタントとチャットします。

「Slack appsの構築」は、SlackアプリケーションのSlack開発者ドキュメントを参照してください。

Digital AssistantのSlackチャネルを作成するステップを次に示します。

ステップ1: Slack Workspaceの取得

Slackでデジタル・アシスタント(またはスタンドアロン・スボット)を使用可能にするには、Slackワークスペースを使用して、Slackアプリケーションを作成するために必要な権限を持っている必要があります。

そのようなワークスペースを使用できない場合は、独自のワークスペースを作成できます。 Slack 「新規ワークスペースの作成」ページを参照してください。

ステップ2: Slack Appの作成

  1. Slack 「アプリケーション」ページに移動します。

  2. アプリケーションの作成をクリックします。

  3. アプリケーション名および開発Slackワークスペースのフィールドに入力し、アプリケーションの作成をクリックします。

    アプリケーションが作成されると、その「基本情報」ページが表示されます。

  4. ページの「アプリケーション資格証明」セクションまでスクロールして、クライアントIDクライアント・シークレットおよび署名シークレットの値を確認します。

    これらの資格証明は、Digital Assistantでチャネルを設定するときに必要になります。

  5. スキルまたはデジタル・アシスタントがアタッチと連携する場合は、OAuthおよび権限タブに移動してファイル:書込み:ユーザー権限を追加します。
    ノート

    現在、ファイル:書込み:ユーザー権限はワークスペースの所有者にのみ適用されるため、ワークスペースの所有者のみが、スキルへのアタッチのアップロードに成功します。

ステップ3: Slack Appのボット・ユーザーの作成

  1. Slackアプリケーションのwebコンソールの左側のナビゲーションで、機能セクションからボット・ユーザーを選択します。

  2. ボット・ユーザーの追加をクリックします。

  3. 表示名とデフォルトのユーザー名を入力します。

  4. 常にマイ・ボットをオンラインとして表示スイッチをONに設定します。

  5. ボット・ユーザーの追加をクリックします。

  6. 変更の保存をクリックします。

ステップ4: ワークスペースにアプリケーションを追加

  1. Slackアプリケーションのwebコンソールの左側のナビゲーションで、設定セクション内アプリケーションのインストールを選択します。

  2. ワークスペースへのアプリケーションのインストールをクリックします。

  3. 認可をクリックします。

このステップを完了すると、アプリというラベルの左ナビゲーションのセクションに、Slackワークスペースのアプリケーションが表示されます。



ステップ5: Digital Assistantでのチャネルの作成

  1. Digital Assistantの左側のメニューでチャネルをクリックして、ユーザーを選択します。

  2. +チャネルをクリックして「チャネルの作成」ダイアログを開きます。

  3. チャネルの名前を指定してください。

  4. チャネル・タイプとしてSlackを選択します。

  5. Slackアプリケーションを作成したときに取得したクライアントIDクライアント・シークレットおよび署名シークレットの値を入力します。

    これらの値は、Slack appの設定ページから取得できます。

  6. 「作成」(コールバック)をクリックします。

  7. チャネル・ページで、WebHook URLをコピーして、システム上の都合のよい場所に貼り付けます。 これは、Slackアプリの設定を終了するために必要です。

  8. ルート先...ドロップダウンのアイコンをクリックし、チャネルに関連付けるデジタル・アシスタントまたはスキルを選択します。

  9. ルーティング先ドロップダウンで、チャネルに関連付けるデジタル・アシスタントまたはスキルを選択します。

  10. チャネル有効コントロールに切り替えます。

ステップ6: Slack AppでのWebフックURLの構成

  1. Slackアプリケーションのwebコンソールの左側のナビゲーションで、対話型コンポーネントを選択します。

  2. 相互作用力スイッチをONにします。

  3. リクエストURLフィールドおよびオプションのロードURLフィールドの両方で、Digital Assistantでチャネルを作成したときに生成されたwebフックURLを貼り付けます。

  4. 変更を保存します。

  5. 左側のナビゲーションで、OAuth &権限を選択します。

  6. リダイレクトURLフィールドで、新規リダイレクトURLの追加をクリックします。

  7. webフックURLを貼り付け、/authorizeを追加して、追加URLを保存の順にクリックします。

  8. 左側のナビゲーションで、イベント・サブスクリプションを選択します。

  9. イベントの有効化スイッチをONに設定します。

  10. リクエストURLフィールドに、webフックURLを貼り付けます。

    URLを入力した後に、緑色の検証済ラベルがリクエストURLラベルの横に表示されます。

  11. ページのボットのイベントをサブスクライブセクションで、ボット・イベントの追加をクリックし、次のイベントを追加します:

    • im_created
    • message.im
  12. 権限スコープの変更に関するバナーが表示された場合は、をクリックして、提案されたようにアプリケーションを再インストールします。
  13. 変更の保存をクリックします。

ステップ7: Slackボタンを追加

  1. Slackアプリケーションのwebコンソールの左側のナビゲーションで、配分の管理を選択します。

  2. Slackへの追加ボタンをクリックします。

  3. 次のページで、認可をクリックします。

    資格証明が検証され、ワークスペースおよびアプリケーションにアクセスできることを示す"成功ページ"にリダイレクトする必要があります。

ステップ8: Slackでのボットのテスト

Slackチャネルとメッセージの構成が完了したら、Slackでボット(デジタル・アシスタントまたはスキル)をテストできます。

  1. アプリケーションをインストールしたSlackワークスペースを開きます。

  2. 左側のナビゲーション・バーで、デジタル・アシスタントに関連付けられているアプリケーションを選択します。

  3. メッセージ・フィールドに、デジタル・アシスタントとの通信を開始するテキストを入力します。

サポートされている機能

Digital AssistantのSlackチャネルでは、次の機能がサポートされています:

  • テキスト(送信と受信の両方)
  • イメージ(送信と受信の両方)
  • ファイル(送信の部分サポート、受信の完全サポート)
  • emojis (送信の部分サポート、受信の完全サポート)
  • links
  • ポストバック
  • カスタム・プロパティ
  • カルーセル・コンポーネント(ただし、水平方向ではなく垂直方向にレンダリング)
  • リスト・コンポーネント

メッセージの制約

Digital AssistantのSlackチャネルには、次のメッセージ制約があります:

  • テキスト・メッセージ
    • テキスト・メッセージの最大長: 3000 characters. 長さが3000を超える場合、テキストは複数のメッセージにわたって分割されます。
    • テキスト・アクション・ラベルの最大長: 30文字
    • 許可されるテキスト・アクションのタイプ: ポストバック、URL
  • 水平カード
    • サポート対象: いいえ。カードはレイアウトで垂直に変換されます。
  • 垂直カード
    • タイトルの最大長: 3000文字
    • 摘要の最大長: 3000文字
    • カード処理ラベルの最大長: 30文字
    • Maximum number of cards: 100
    • 許可されているカード処理のタイプ: ポストバック、URL
    • カード・リスト処理のタイプ許可: ポストバック、URL
  • アタッチメント・メッセージ
    • サポート対象: Yes
    • 許可されるアクションのタイプ: ポストバック、URL
  • 処理ボタン
    • グローバル・アクション・ラベルの最大長: 30文字
    • 許可されるグローバル・アクションのタイプ: ポストバック、URL

Slackチャネル拡張

Slackチャネルでは、Slack固有の機能でSystem.CommonResponseコンポーネントの機能を拡張できます。

拡張機能にアクセスするには、System.CommonResponseコンポーネントのchannelCustomProperties要素を使用し、適切なプロパティを設定します。 コードの書式は次のとおりです:

...
            channelCustomProperties:
            - channel: "slack"
              properties:
                PROPERTY_NAME: "PROPERTY_VALUE"
...

Slackチャネルで使用可能なカスタム・プロパティは次のとおりです:

名前 指定できる値 適用対象... 説明
showImageInAccessory
  • true
  • false
cardsタイプのレスポンス・アイテム。 trueに設定すると、より中央のイメージではなく、右に小さいイメージとしてカード・イメージが表示されます。
showDatePicker
  • true
  • false
  • showinitialDateおよびplaceholderプロパティを持つネストされたオブジェクト
textタイプのレスポンス・アイテム。 trueに設定すると、テキスト・メッセージの横に日付ピッカーが表示されます。 https://api.slack.com/reference/messaging/block-elements#datepickerも参照してください。
renderActionsAsDropDown
  • true
  • false
  • 次のプロパティを持つネストされたオブジェクト。それぞれがブール値を取ります:
    • postbackActions
    • cardPostbackActions
    • globalPostbackActions
レスポンス・アイテム デフォルトでは(このプロパティを設定しない場合)、アクションは次のように表示されます:
  • アクションが5つ以下の場合はボタンとして
  • 6つ以上の場合はドロップダウン・リストに表示されます。

アクションをドロップダウン・リストに表示する場合は、アクションの数にかかわらず、このプロパティをtrueに設定します。

アクションをボタンとして表示する場合は、アクションの数を問わず、このプロパティをfalseに設定します。

様々なタイプのポストバック・アクションで異なる動作が必要な場合、次のアクション・タイプごとにブール値とともにネストされたオブジェクトを使用できます:

  • postbackActions - テキスト、添付およびカード・リスト・アイテムを含む、レスポンス・アイテム・レベルで定義されたポストバック・アクション。
  • cardPostbackActions - 個々のカードに対して定義されたポストバック・アクション
  • globalPostbackActions - グローバル・アクションに対して定義されたポストバック・アクション。

ドロップダウン・メニューのアクションをレンダリングするために、Slackでは、静的アイテムを含む選択メニューが使用されます。 https://api.slack.com/reference/messaging/block-elements#static-selectを参照してください。

dropDownPlaceholder
  • プレースホルダー・テキスト
  • 次のプロパティを持つネストされたオブジェクト。それぞれが文字列値を取ります:
    • postbackActions
    • cardPostbackActions
    • globalPostbackActions
レスポンス・アイテム このプロパティを使用して、ドロップダウン・リスト内に表示されるプレースホルダー・テキストを指定します。
fields
  • 文字列の配列
textタイプのレスポンス・アイテム。 このプロパティで指定した文字列値は、2列レイアウト(デスクトップ)または単一列レイアウト(モバイル)でフィールドとして表示されます。

renderActionsAsDropDownカスタム・プロパティの使用例を次に示します。

responseItems:
- type:
 "text"
  text: "Here is a list of the UI features of the Common Response Component:"
  actions:
  - ...
  channelCustomProperties:
  - channel: "slack"
    properties:
      renderActionsAsDropDown: false

ここで、renderActionsAsDropDownカスタム・プロパティを、postbackActionscardPostbackActionsおよびglobalPostbackActionsのネストされたプロパティとともに使用する例を示します。

responseItems:
- type: "text"
  text: "Here is a list of the UI features of the Common Response Component:"
  actions:
  - ...
  channelCustomProperties:
  - channel: "slack"
    properties:
      renderActionsAsDropDown:
        postbackActions: false
        cardPostbackActions: true
        globalPostbackActions: true

channelCustomPropertiesの全般的な情報は、「チャネル固有の拡張」を参照してください。