概要
学習内容
本チュートリアルでは、操作手順とサンプルを通じて、企業開発者がドライブファイルのアップロード、ダウンロード、プレビューなどの操作を素早く実装できるようにします。学習目標
開発者が自身のアプリを構築できるようになると同時に、DingTalk のベーシック API を利用してドライブファイルのアップロード、プレビュー、ダウンロード機能を組み込めるようになることを目的としています。対象範囲
すべての DingTalk 開発者を対象とします。前提条件
- 開発者権限を取得済み。
- IDE またはその他の開発ツールをインストール済み。
- ドライブの目次内に「テストフォルダー」という名前のフォルダーを作成済み(このフォルダーはテスト用にのみ使用します)。
- node.js をインストールし、環境設定を完了済み。
- maven をインストールし、環境設定を完了済み。
- JDK をインストールし、環境設定を完了済み。
開発フロー
- サイレントログインを通じて、現在のログインメンバーの名前、ロールなどの情報を取得します。ログインについては、Web アプリ(H5 マイクロアプリ)のサイレントログインを参照してください。
-
ドライブファイルのアップロード
- ファイル検索 API を呼び出して、ドライブスペース内の「テストフォルダー」を検索し、ファイルの
dentryUuidを返します。
- ファイル検索 API を呼び出して、ドライブスペース内の「テストフォルダー」を検索し、ファイルの
説明
この API を呼び出す際は、ドライブスペース内に「テストフォルダー」という名前のフォルダーが 1 つだけ存在することを事前に確認してください。そうでない場合、エラーが発生する可能性があります。 2.dentryUuid をもとに ファイルアップロード情報の取得 API を呼び出し、resourceUrls および headers パラメーターを含むファイルのアップロード情報を取得します。
3. OSS の header リクエスト署名方式でファイルをアップロードします。アップロード方法については、ファイルアップロード情報の取得 API のステップ 2 を参照してください。
4. ファイル送信 API を呼び出して、現在のファイルをドライブに送信し、spaceId、parentId、path、uuid などの返却パラメーター値を取得します。
3. ドライブファイルのプレビュー
-
ドライブファイルアップロードの最終送信時に取得した
uuidを使用し、URL を結合してファイルを開き、プレビューします。 -
ドライブファイルのダウンロード
-
スペースリストの取得 API を呼び出してドライブスペース情報を取得し、
spaceIdを取得します。 -
spaceId を使って ファイルまたはフォルダーリストの取得 API を呼び出し、ファイルの
fileIdとファイル名nameを取得します。 -
取得した filedId と name を使って ファイルダウンロード情報の取得 API を呼び出し、
internalResourceUrlsおよびheadersパラメーターを含むファイルのダウンロード情報を取得します。 - 上記の内容をもとに、ダウンロード操作を実行します。ダウンロードコードについては、ファイルダウンロード情報の取得 のステップ 2 を参照してください。 説明
-
スペースリストの取得 API を呼び出してドライブスペース情報を取得し、
説明
ファイルパスは現在のプロジェクトのパス + ファイル名となるため、ファイルダウンロード後は自動的にプロジェクトの目次に保存されます。ご自身でご確認ください。ステップ 1: アプリの作成
- 開発者管理画面 にログインします。
- アプリ開発 > 社内アプリ > DingTalk アプリ > アプリの作成 をクリックします。
-
アプリ情報を入力します。
- 保存 をクリックし、アプリ詳細ページに進みます。 作成完了後、ベーシック情報 > 認証情報とベーシック情報 をクリックして、アプリの Client ID、Client Secret、AgentId を確認できます。
ステップ 2: Web アプリの設定
- アプリ詳細ページで、アプリ機能 > アプリ機能の追加 をクリックします。
- Web アプリの追加を選択します。
-
Web アプリ(H5)情報を設定します。
- 設定完了後、保存 をクリックします。
ステップ 3: API 権限の追加
正式なテスト時には、以下の権限を追加する必要があります。- ファイル検索権限:
Storage.Dentry.Search - 企業ストレージファイルアップロード情報読み取り権限:
Storage.UploadInfo.Read - 企業ストレージファイル書き込み権限:
Storage.File.Write - ドライブアプリスペース読み取り権限:
Drive.Space.Read - 企業ストレージファイル読み取り権限:
Storage.File.Read - 企業ストレージファイルダウンロード情報読み取り権限:
Storage.DownloadInfo.Read
ステップ 4: アプリの公開
- アプリ設定完了後、アプリを公開する必要があります。アプリ詳細ページで アプリ公開 > バージョン管理と公開 をクリックします。
- 新しいバージョンの作成 をクリックし、バージョン詳細ページに進みます。
-
バージョン情報を設定します。
設定完了後、下部の保存をクリックします。
-
保存成功のポップアップページで、直接公開をクリックします。
組織管理者でない場合、アプリ公開時には組織管理者の承認が必要です。「自分のみに公開」の場合は管理者の承認は不要です。
ステップ 5: サービスの構築
- 上記ステップを完了し、以下の Demo 実行用のパラメーター情報を取得していることを確認してください。
- file-demo.zip Demo をダウンロードできます。
-
IDE を開き、ダウンロードした Demo をインポートします。
サンプルコードは backend(バックエンドコードディレクトリ)と frontend(フロントエンドコードディレクトリ)に分かれています。
-
バックエンドコードディレクトリを開き、resources ディレクトリ内の
application.propertiesファイルを編集し、clientId(アプリの Client ID)およびclientSecret(アプリの Client Secret)パラメーターを入力します。 -
バックエンドサービスをクリックして起動します。
説明
- バックエンドサービスを起動する前に、Maven および JDK が正しくインストールされ、関連環境が設定されていることを確認してください。IDE を初めてインストールする場合は、IDE 内で関連設定ファイルを編集する必要があります。
- 5173 番および 8080 番ポートが使用されていないことを確認してください。
-
フロントエンドコードディレクトリを開き、
vite.config.tsを編集し、正しいclientId(アプリの Client ID)を入力します。 - フロントエンドプロジェクトファイルをクリックし、右クリックして ターミナル を選択して開きます。
-
ターミナルウィンドウで、以下のコマンドを実行します。
-
npm install -
npm run dev注意:Windows で起動する際は、
npm run dev:rawを使用してください。
-
- これで、フロントエンドおよびバックエンドサービスが正常に起動しました。
ステップ 6: アプリのテスト
- DingTalk クライアントサイドにログインし、アプリが所属する組織を選択します。
- ワークベンチ > 追加 をクリックし、先ほど作成した企業アプリを検索して追加操作を完了します。
- アプリを開き、ローカルファイルを選択 をクリックして、ローカルファイルをドライブにアップロードします。 ファイルを選択後、送信 をクリックします。ファイル情報確認画面で、ユーザーの ID、ファイル名、ファイルサイズを確認できます。
- アップロード成功後、以下の図のように表示されます。
説明
リンクをクリックすると直接ファイルを開けます。または、ファイルを開く ボタンをクリックしてファイルを表示できます。 アップロード成功後、ドライブの「テストフォルダー」内でアップロード済みのファイルを確認できます。- ファイルダウンロードボタンをクリックすることで、ファイルのダウンロードが完了します。
重要
ファイルダウンロード時に「auth level of org is not enough」エラーメッセージが表示された場合、現在の企業認証レベルが低すぎることを示しています。アップグレード後にご利用ください。詳細は ファイルダウンロード情報の取得 API のエラーコード説明を参照してください。 ファイルダウンロード成功後、プロジェクトの目次内でダウンロード済みのファイルを確認できます。- これで、ドライブのアップロード、プレビュー、ダウンロードの全操作が完了しました。