• 製品・サービス
  • 業種別
  • ブログ・導入事例
  • IR
  • 会社情報
  • お問い合わせ・資料請求
ご契約中のお客様
  • 製品・サービス
  • 業種別
  • ブログ・導入事例
  • IR
  • 会社情報
  • お問い合わせ・資料請求
  • ご契約中のお客様

ご契約中のお客様

リックソフトブログ

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

2020年05月28日(2025年10月21日 更新)

大野 智之

大野 智之 Tomoyuki Ohno

記事一覧へ

はじめに

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をご検討ください。

本ブログのカテゴリ: Workato

大野 智之

大野 智之 Tomoyuki Ohno

この人が書いた他の記事を読む

本情報はブログを公開した時点の情報となります。

  
資料ダウンロード お問い合わせ PAGE TOP
資料ダウンロード お問い合わせ