タスクワールド(Taskworld)ブログ

とにかく使いやすい!実際の業務で重宝する機能が満載!

タグ:公開

〜API連携により、タスクワールドの可能性が大幅に広がります!〜

「Taskworld API」 はタスクワールドのリソースにアクセスできる JSON ベースの Web APIです。様々なクライアントから実行可能で、タスクワールドのユーザーであれば、機能に制限なく、誰でも利用することが可能です。

API


本日は、「Taskworld API」の使い方サンプルを駆け足で見ていきましょう!

Let's スタート!

※API のリファレンスはこちらの、アジアサーバー向けのドキュメントを参照してください。
https://asia-api.taskworld.com/#introduction

------

まずは認証キーの取得からスタート!

クラウドサーバーによるタスクワールドのサービスは、アジア、欧米、欧州の3つの異なるリージョンで運営がされています。サインアップ時に選択したサーバーのリージョンがアジアであれば、アカウントおよびワークスペースは、アジアのサーバーで運営されているということになります。

利用しているサーバーのリージョンをチェックしてみましょう。タスクワールドのワークスペースにアクセスをして、そのURL のドメインが「asia-enterprise.taskworld.com」となっていれば、アジアのサーバーが使われていることが確認できます。

01_01_region

アジアリージョンの API に認証リクエストを送信して、認証トークンを取得してみましょう。

本記事では、 HTTP クライアントに Chrome専用アプリ「Postman」を使用します。Postmanの詳細に関しては、その公式サイトを参照してください。

Postmanを起動し、リクエストメソッド / API の URL / MIMEタイプを設定します。

01_02_postman_auth_1

続いて、 Bodyタブを開き、「raw / JSON」を選択して、登録情報のJSON(メールアドレス、パスワード)を入力します。

01_03_postman_auth_2

「Send」ボタンでリクエストを送信すると、下段に結果が表示されます。

今回はリクエストが成功し、レスポンスで以下の認証情報を取得できました:

・access_token(認証トークン)
・default_space_id(ユーザーが最初に作成したワークスペース)
・workspaces(ユーザーがアクセス可能なワークスペース)


「access_token」は、この先すべての API で使用します。その使用に際して制限などは設けられていないため、取り扱いには十分注意をしてください。

01_04_postman_auth_res

下は、メールアドレスが誤りの場合のエラーレスポンスです。

01_05_postman_auth_err

エラーに関しては、 API リファレンスのエラー情報を参照して下さい。


ワークスペースのデータ構成はこうなっています!

それではここで、ワークスペースを構成するオブジェクトの関係を少しだけ見てみましょう。

下図は、APIが返却するオブジェクトの概念的な関連図です。

02_01_er

タスク管理の基本構成は、ワークスペース > プロジェクト > タスクリスト > タスクという親子関係になっています。

チャンネル(チャット)はユーザー/ワークスペース/プロジェクトに紐づいており、各々のチャンネルの会話がメッセージとして保存されます。

メッセージは、この他にタスクコメントとして単独でも使用されます。そのため、メッセージは 「parent_id」 と 「parent_type(channel / task)」の2種類のキーで親オブジェクトを識別している点に注意してください。

これらの登録データは、APIで取得する他に、一括でダウンロードすることも可能です。一括ダウンロードは、タスクワールドのアカウント設定画面からリクエストを送信できます。

JSON

※ダウンロードデータの型は、APIレスポンスとは若干異なります。

ワークスペースのデータ量が多いと、APIだけで構成を把握するのは大変です。あらかじめデータをダウンロードしておけば、開発がスムーズに進むのでオススメです。

それでは、実際にAPIを使ってみましょう!


APIで、ワークスペース情報を取得!

まずはワークスペースの情報を取得します。

「Get workspaces API」 で、ユーザーがアクセス可能な全てのワークスペースの情報を取得しましょう。ここからは、前述の取得済み「access_token」を認証に使用します。

03_01_workspace_all


「Get workspaces API」では、ワークスペースの「name」に注意してください。

「Taskworld API v1」 では、URL に使用するキー文字列(日本語の名前の場合はハッシュ値)が「name」として返ります。そのためレスポンスを見ただけでは、どれがどのワークスペースなのか区別するのが難しい時があります。

前述のデータダウンロードであれば、日本語名も取得できるので、可能であれば両者を突き合わせてレスポンスを確認する事をオススメします。


APIで、タスクリスト&タスクを追加!

次は、APIを使い、プロジェクトにタスクリストを追加してみましょう。

「Create a tasklist API」を使用します。ワークスペース、プロジェクト、そして追加するタスクリスト名を指定して実行します。

03_02_add_tasklist


リクエストが成功したら、タスクワールド上での表示を確認しましょう。下のスクリーンショットのように、タスクリストがリアルタイムで追加されます。

03_03_added_tasklist

追加したタスクリストに、タスクを作成してみましょう。「Create a task API」で、先ほどのレスポンスの「list_id」を指定し、タスク名を設定します。

03_04_add_task

先ほどのタスクリストと同様、下のスクリーンショットのように、リアルタイムでタスクが追加されます。

03_05_added_task



APIで、タスクを更新!

それでは、APIにより、作成済みのタスクを更新してみましょう。

「Update a task API」で、タスクにポイント、ラベル色、タスク説明テキスト、開始日・期日を追加してみます。

※「API v1」では、日時をグリニッジ標準時で指定します。

更新に成功すると、レスポンスで更新後のタスクオブジェクトが返ってきます。

03_06_update_task


下のスクリーンショットのように、リアルタイムでタスクワールドのワークスペース上に、タスクの詳細情報が追加・更新されます。

03_07_updated_task


APIではこの他に、タグやメッセージの操作、タスクの移動なども行えます。

ぜひ色々と試してみてください!


Slack bot を作ってみましょう!

サンプルソースを使用して、タスクワールドの特定のタスクリストを操作する、“Slack App” を作成してみましょう。

このサンプルでは、ローカル環境の node で稼働するタスクワールド操作コマンドを、「ngrok」 経由で公開して「Slack(スラック)」と連携させます。

1. localhost 環境構築

まずは、ローカル環境を構築します。

実行環境は ubuntu16.04 / node.js v9.11.2 です。

サンプルソースを API リファレンス「Examples」の github リポジトリリンクから取得しましょう。

ソースを使いやすい場所に展開したら、「tw-slack-bot」ディレクトリへ移動して、関連モジュールをインストールし、node を起動します。

この段階では起動確認だけできれば良いので .env は port だけ設定しておきましょう。

$ cd tw-slack-bot
$ yarn init # 設定値はデフォルトでOK
$ npm install --save-dev
$ cp .env.sample .env
$ vi .env # とりあえず port だけ設定
$ node index.js


続いて、「ngrok」 をインストールして localhost を公開します。

「ngrok」 に関しては、こちらのSlack のチュートリアルも参考にしてみてください。

04_00_ngrok


2. Slack Appの作成とインストール

Slack Appを作成しましょう。作成方法はSlack 公式サイトでも公開されているので、ここでは、 slash command の追加手順だけ見てみましょう。

ブラウザで Slack にログインして、Slack App 構築ページを開き、「Create a slack app」を選択します。

04_01_slackapp_create

作成ウィンドウが開くので、 Slack Appの任意の名前と、 開発対象のSlack ワークスペースを指定します。

04_02_slackapp_create2

「Basic Information」 が開いたら、「Slash Command」をクリックします。次の画面では、「Create New Command」に進みましょう。

04_03_slackcmd_1

「Create New Command」 画面に移動したら、次のようにコマンド設定を入力します。

・Command: /twctask
・Request URL: https://[ngrok で割り当てられたドメイン名]/twctask


その他は任意で設定し、「Save」をクリックします。

04_05_slackcmd_3

作成したコマンドをSlack のワークスペースにインストールします。

「Install App」画面では、「Install App to Workspace」をクリックして、次の画面で「Authorize」へ進むとインストールが完了します。

04_06_install



3. localhost のコマンド設定

最後に、ローカルのソースを編集してコマンドが正しく動作するように設定しましょう。

サンプルソースは北米サーバー向けになっているので、「tw-slack-bot/taskworld.js」の API URL をアジア用に修正します。

04_10_code


前述のステップで、「port」 を設定した 「.env」 に、今度は Slack と Taskworld API の設定を追加します。

Slack の情報はこの3つです。

・CLIENT_ID
・CLIENT_SECRET
・VERIFICATION_TOKEN


Slack の情報は「App Credentials」で確認します。

Slack のコマンド管理画面を開いて下の方にスクロールすると「App Credentials」の欄があるので、そこから必要事項をコピーして .env に記述します。

04_11_credential


タスクワールドの情報は4件です。操作対象のタスクリストに関する情報と、認証トークンを記述しましょう。

・ACCESS_TOKEN: Auth API で取得した access_token
・SPACE_ID - ID: ワークスペース ID
・PROJECT_ID: プロジェクト ID
・LIST_ID: 対象のタスクリスト


.env を更新したら node を再起動します。


4. コマンドを実行する

作成したコマンドをSlack から実行してみましょう。

04_12_cmd_exe

そうすると、下のスクリーンショットのように、タスクワールド上でタスクが新たに追加されます。

04_13_result


この他にも、Taskworld APIを活用することにより、サンプルをベースにして様々な機能を作り込んでいくことが可能です。

ぜひ色々と試してみてください!


--------------

タスクワールドは、15日間無料でトライアル利用が可能です。
トライアル期間中は、アナリティクス機能を含む、そのすべての機能を無制限で使えます。
日本語によるサポートもバッチリなので、ぜひ気軽にトライアルスタートを!
twbanner_700x230_ja

1-cR7Xny-Rt1dGa1JGiexWBw

1-LXIE6IOdez6aMNcva6C6Bg

〜情報共有は関係あるメンバーだけに絞れます!〜

タスクワールドでは、ワークスペースを会社のオフィスの様にして、その中で様々な仕事をチームメンバーと取り組んでいきます。

yellow

一つのワークスペースの中に、複数のプロジェクト。各プロジェクト内で、複数のタスクに取り組む。これが、タスクワールドの基本コンセプトです。

プロジェクト、タスク、そしてワークスペースに参加するチームメンバーが増えていくほど、業務オペレーションの効率化を強力にサポートするタスクワールドは、その力をより発揮していきます。

また、チームのコミュニケーションインフラを支えるツールとしての重大さが増していくに連れ、実際のオフィスのように、メンバー間での情報共有レベルを調整していく必要性が高まっていきます。

今日は、タスクワールドのワークスペース上で、どのように情報共有レベルを調整できるのか、駆け足でサラッと見ていきましょう。

Let's スタート!

------

下は、「木村潤」というメンバーのアカウントで、木村潤がアクセスできる全てのプロジェクトを確認できるページです。

1
このように、「参加中」と「非参加」でプロジェクトが整理されています。

木村潤が参加していない「人工知能プロジェクト」というプロジェクトを開いてみましょう。

下は、このプロジェクトのメインページであり、右側にはこのプロジェクトのプロパティが表示されています。

木村潤はこのプロジェクトのメンバーとして設定されていませんが、プロジェクトが公開設定されているため、プロジェクトのメンバーでないメンバーも、プロジェクト管理者のみが可能な操作を除き、自由に閲覧・編集をすることができます。

2
プロジェクトが公開設定されているため、プロジェクト管理者・メンバーでなくてもアクセス可能。

「プロジェクトの管理者・メンバーとして設定されていない限り、このプロジェクトにアクセスできないようにする」ことが可能です。

プロジェクトのプロパティで「公開プロジェクト」をオフにすると、このプロジェクトを非公開にすることができます。

3
プロジェクトが非公開設定されると、左の矢印が指しているアイコンが、地球から鍵のイラストに変わります。

このプロジェクトは非公開設定がされました。

それにより、このプロジェクトの管理者・メンバーとして設定がされていない木村潤のアカウント上では、このプロジェクトは表示されなくなり、木村潤によりアクセスされることができなくなります。

4
参加していないプロジェクトには、非公開設定がされた「人工知能プロジェクト」が表示されなくなりました。

このプロジェクトを非公開にしておいた上で、木村潤がアクセスできるようにするには、木村潤がこのプロジェクトの管理者、またはメンバーとして設定される必要があります。

では、このプロジェクトの管理者のアカウントから、木村潤をこのプロジェクトのメンバーとして設定してみましょう。

5


6

木村潤が、このプロジェクトのメンバーとして設定されました。

非公開設定がされている「人工知能プロジェクト」は、プロジェクトメンバーである木村潤のアカウントからアクセスが可能になりました。

7
参加中のプロジェクトの1つとして表示されています。

プロジェクトにアクセスできるワークスペースメンバーは、プロジェクト管理者のみが行なうことのできる操作を除き、そのプロジェクトに関して全ての操作が可能です。

木村潤のアカウントで、このプロジェクトのプロパティを開いてみましょう。

8
木村潤はプロジェクトメンバーの1人として設定されています。

プロジェクトのプロパティを下にスクロールしてみましょう。

9
上の画像では、「プロジェクト退会」以外の操作は、プロジェクト管理者に限られる操作。

「アクセス権の設定」は、プロジェクト管理者のみが行える操作の1つです。

このプロジェクトの管理者のアカウトで、同じ画面を開いてみましょう。

10

「メンバーにフルアクセス権を与える」が設定されています。

フルアクセス権が設定されていると、このプロジェクトにアクセスできるワークスペースメンバー全員は、プロジェクト管理者のみに限定された操作を除き、フルにこのプロジェクトにアクセスすることが可能です。

それでは、これを「限定的なアクセス権」に変更してみましょう。

gentei
プロジェクト管理者でなければ、アクセス権設定を変更することはできません。

下は、「限定的なアクセス権」が設定された上で、木村潤アカウントでアクセスされた、このプロジェクトのメインページ、及び、このプロジェクトのプロパティです。

12
限定的なアクセス権の設定で、プロジェクト管理者以外のメンバーの操作を限定的にすることができます。

フルアクセスでないアクセス権が設定されても、プロジェクメンバーであるかないかに関わらず、プロジェクトにアクセスできるワークスペースメンバーは、そのプロジェクトにアクセスができます。

フルアクセスでないアクセス権の設定により、そのプロジェクト全体のアクセスではなく、そのプロジェクト内の各タスクに関しての扱いを限定的なものにすることが可能です。

限定的なアクセス権が設定されると、プロジェクト管理者以外の、プロジェクトにアクセスできるワークスペースメンバーは、タスクの作成・削除・移動や、タスクの担当者の編集等の、一部の操作ができなくなります。
※タスクの完了処理や、タグ新規設定、タグ外し、タスクへのコメント等の操作は可能です。

限定なアクセス権に加え、「制限付きのアクセス権」オプションもあります。

seigen
制限付きアクセス権は、最も厳しいアクセス権設定となります。

「制限付きアクセス権」が制限する操作は、「限定的なアクセス権」が制限する操作と同じですが、その効果には一つだけ違いがあります。

「制限付きアクセス権」が設定されると、プロジェクト管理者以外のプロジェクトにアクセスできるワークスペースメンバーは、自身が担当者またはフォロワーとして設定されていないタスクには、アクセスできなくなります。


下は、木村潤アカウントで開いた、「制限付きアクセス権」が設定された状態の、このプロジェクトのメイン画面です。

14
赤い矢印が指しているのは、木村潤アイコンの表示がされていないタスクカードです。

木村潤が担当者、またはフォロワーとして設定されていないタスクの表示が消えています。

上の画面をパッと見ると、3つのタスクのうち1つは、担当者であることを示す木村潤のプロフィール画像アイコンが載っておらず、???となってしまいますね。

そのタスクの詳細を開いてみましょう。

15

なぜこのタスクカードの表示が残っているかというと、それは、木村潤がそのタスクに担当者ではなくフォロワーとして設定されているからです。

.......

以上、タスクワールドのワークスペース上での情報共有レベル設定に関してでした!

あくまで、ワークスペース内の情報共有レベルの設定であり、もちろん、ワークスペースに参加していない人は、ワークスペース自体にアクセスできないので、ワークスペース内の情報には、初めからシャットアウトされています!


--------------

タスクワールドは、15日間無料でトライアル利用が可能です。
トライアル期間中は、アナリティクス機能を含む、そのすべての機能を無制限で使えます。
日本語によるサポートもバッチリなので、ぜひ気軽にトライアルスタートを!
twbanner_700x230_ja

1-cR7Xny-Rt1dGa1JGiexWBw

1-LXIE6IOdez6aMNcva6C6Bg

↑このページのトップヘ