リックソフトブログ

2020年05月28日

WorkatoでSlackとGoogleドライブ間のファイルアップロード連携を実装する

Author

大野 智之 Tomoyuki Ohno

大野 智之</mt:Var>

  

はじめに

Slackを利用していると、SlackをアップロードしたファイルをGoogleドライブやBoxなどのオンラインストレージにもアップロードされたら良いのに・・・と思うことはありませんか?

例えば、スマートフォンで撮影したイベントの写真をSlackだけでなく、Googleドライブにも同時にアップロードされれば、Slackから1つずつ画像をダウンロードする手間も省けます。

Workatoを利用することで、そのような処理を簡単に実現することができます。

ということで、今回はWorkatoを使って、SlackへアップロードされたファイルをリアルタイムにGoogleドライブへアップロードする処理の実装を行っていきます。

手順

記載のないパラメータはデフォルト(初期値)のままとします。

1.Slackへアプリを作成する

Slackへアプリを作成する手順は、「WorkatoのHTTPコネクタ(汎用コネクタ)でSlack APIエンドポイントを利用する」に記載していますので、そちらを参照ください。

上記に加えて、OAuth & PermissionsのScopesへ次のOAuth Scopeを追加します。

User Token Scopes

channels:history

files:read

workato-slack-google01.jpg

2.App Connectionの追加

workato-slack-google02.jpg

「Create a new recipe」をクリックします。

workato-slack-google03.jpg

App Connectionを追加するアプリケーションを選択します。

workato-slack-google04.jpg

今回は、以下のApp Connectionを追加します。

  • Slack
  • HTTP
  • Google Drive

Slack

Applicationに「Slack」を選択し、「Link your account」をクリックしてSlackと連携します。

HTTP

Applicationに「HTTP」を選択し、「WorkatoのHTTPコネクタ(汎用コネクタ)でSlack APIエンドポイントを利用する」を参考に設定します。

Google Drive

Applicationに「Google Drive」を選択し、「Link your account」をクリックしてGoogle Driveと連携します。

※連携先とするGoogle Drive(Googleアカウント)は事前に用意します。

3.レシピを作成する

Workatoを開き、次のようなレシピ(ワークフロー)を作成します。

workato-slack-google05.jpg

Trigger

まず、以下の赤枠で示した箇所の設定を進めます。

workato-slack-google06.jpg

Slackコネクタを選択し、以下の通り設定を進めます。

App Slack
Trigger event New event
Event name file-attachment ※名称は任意ですが、Request URLに影響します。
Trigger condition 有効にする
Collapse trigger condition

Trigger data: Slackへアプリを作成するSlackへアプリを作成するの「Channel」)

Condition: equals

Value: 本レシピの参照先とするSlackのチャンネルのID

※Trigger dataの値は、Datapills(Workatoのレシピ作成画面の右側に表示されるインターフェース)よりドラッグ&ドロップで指定します。(以下を参照)

workato-slack-google09.jpg

なお、Datapillsの詳細については、下記URLを参照ください。

https://docs.workato.com/recipes/data-pills-and-mapping.html

なお、Slackコネクタを追加すると、Request URLが発行されます。

このURLはSlackへアプリを作成する際(Event Subscriptionを設定する際)に必要となりますので、記録(メモ)しておきます。

workato-slack-google10.jpg

Actions

次に、以下の赤枠で示した箇所の設定を進めます。

workato-slack-google11.jpg

最初は、Actionsが1つも定義されておらず、次のような表示になっています。

workato-slack-google12.jpg

Actionsの下にある「+」をクリックします。

workato-slack-google13.jpg

次に、「Action in an app」をクリックします。

workato-slack-google14.jpg

以下のような表示となり、コネクタを選択することが出来るようになりますので、必要なコネクタを選択します。

workato-slack-google15.jpg

コネクタを選択すると、次のようにコネクタの設定が行えるようになります。

workato-slack-google16.jpg

それでは、処理の実装を引き続き進めていきます。

Parse JSON document

「JSON Parser by Workato」コネクタを追加し、次の通り設定を行います。

App JSON parser by Workato
Action parse json document
Sample document https://api.slack.com/events/message/file_share のJSON文字列をコピーして貼付
Document

Slackへアプリを作成する Slackへアプリを作成するの「Original event json」)

条件分岐

ファイルがSlackへアップロードされた場合のみ処理させたいため、次の通り条件分岐を追加します。

条件分岐を追加するため、「IF condition」を選択します。

(条件分岐は2種類ありますが、今回はELSEに相当する処理は無いため、IF/ELSE conditonは使用しません)

workato-slack-google19.jpg

条件分岐を追加後、追加された条件分岐に対して以下のように設定を行います。

Collapse condition

Data field: Slackへアプリを作成する Slackへアプリを作成する の「Upload」)

Condition: is true

なお、以後の処理は条件分岐の「Yes」以下に追加します。

Send request via HTTP

「HTTP」コネクタを追加し、次の通り設定を行います。

App HTTP
Action Send request
Request name 任意の名称
Request

Method: GET

Request URL Slackへアプリを作成する Slackへアプリを作成する の「URL private download」)

Response

Response content type: Binary

Encoding: UTF-8 

※Response content typeが「Binary」のためどれでも良いですが、デフォルト値していされているUTF-8のままとします。

Upload small file to Google Drive

「Google Drive」コネクタを追加し、次の通り設定を行います。

App Google Drive
Action Upload small file
File contents

Slackへアプリを作成する Slackへアプリを作成する の「Body」)

File name

Slackへアプリを作成する Slackへアプリを作成する の「Name」)

Parent folder

Google Driveのアップロード先フォルダ

Post message in Slack

「Slack」コネクタを追加し、次の通り設定を行います。

App Slack
Action Post message
Channel ID/name

Slackへアプリを作成する Slackへアプリを作成する の「Channel」)

Basic text

ファイルをGoogle Driveへアップロードしました。

以上の設定が完了したら、「Start recipe」をクリックし、レシピを開始します。

4.Slackアプリへ設定を追加する

Slack apiのアプリ設定画面を開き、Basic InformationのAdd features and functionalityを展開し、「Event Subscriptions」をクリックします。

workato-slack-google30.jpg

Enable Eventsを「On」に変更し、Request URLに、WorkatoのTriggerでSlackコネクタ追加時に発行されたURLを入力します。

また、Subscribe to events on behalf of usersに「messages.channels」を追加します。

workato-slack-google31.jpg

以上の設定が完了したら、「Save Changes」をクリックし、設定を反映します。

実際に試してみる

Slackクライアントを開き、ファイルをアップロードします。

ファイルがアップロードされると、Workatoが「ファイルをGoogle Driveへアップロードしました」というメッセージを返します。

workato-slack-google33.jpg

続いてGoogleドライブを確認してみます。

Googleドライブでは、Slackへアップロードされたファイルを確認することができます。

workato-slack-google34.jpg

以上のように、Workatoでは、SlackとGoogleドライブ間のファイルアップロード連携も簡単に実装することができます。

SlackとGoogleドライブなどのオンラインストレージをより活用されたい、そのようなソリューションをお探しの方は、是非Workatoをご検討ください。

                                         

リックソフトではお得なキャンペーンを実施中です。
9月末までレシピを無料で利用できます。

Workato提携クイックスタート【2020年6月末まで】

製品について詳しくはこちらをご覧ください。

Workato製品情報 Slack導入支援サービス         
                                                                   

本情報はブログを公開した時点の情報となります。
ご不明な点はお問い合わせください。

        

お問い合わせ   

  
本ブログのカテゴリ: Slack Workato
  

アトラシアン製品の導入と活用を
成功させたいなら
リックソフトのサポートが
必要です。

サードパーティ製のアドオンもサポート

サードパーティ製のアドオンもサポート

サポート

アトラシアン社ではサポート範囲外となっているサードパーティ製のアドオンをリックソフトのサポートではサポートします。

  • アトラシアン製品とサードパーティ製のアドオンとの事象の切り分け
  • 海外のアドオンベンダーとのやり取りを代行(日→英/英→日)

リックソフトのサポートは開発元が提供するサポート以上の価値があります。

サポートについて

ツールの活用を促進するアイテム

ツールの活用を促進するアイテム

各種ガイドブック

ツールを導入しただけでは成功とはいえません。利用者が効果を感じていただくことが大切です。独自で制作した各種ガイドブックはツール活用を促進します。

リックソフトからライセンス購入を頂いたお客様にはガイドブックを無料進呈いたします。

ガイドブックについて

価値あるツールの使い方

価値あるツールの使い方

研修・トレーニング

ツール操作の研修だけでなく「ウォータフォール型開発」「アジャイル型開発」のシミュレーション研修も提供。

日本随一の生産性向上にも効果のある研修サービスです。

リックソフトからライセンス購入を頂いたお客様には無料招待や割引特典がございます。

研修について

PAGE TOP