Power BI Desktop・ServicesからBoxにあるファイルへカスタムコネクタから接続する方法

## 概要
同僚がPower BI Desktop・ServicesにてBoxにあるファイルへ接続するカスタムコネクタを開発しておりましたので、その設定手順を紹介します。下記のGithubのレポジトリにて、MIT Licenseで公開しております。このコネクタを利用することで、BOXにおけるフォルダ内のファイルに接続することができます。

- https://github.com/xiaolangxyz/PQExtensionForBox

## 事前準備
- Visual Studio（2015以降）のインストール
- [Power Query SDK](https://marketplace.visualstudio.com/items?itemName=Dakahn.PowerQuerySDK)のインストール
- オンプレミスゲートウェイのセットアップ
- Power BI Desktopのインストール
- 開発者コンソールを利用できるBoxアカウント


## 実施手順
### 1.BOX開発者コンソールにてアプリの作成
#### 1-1. Boxにログイン後、左下にある"開発者コンソール"を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/eb9e4745-792d-f87e-b751-53dc669fa33a.png)

#### 1-2. BOX開発者コンソールにて、"アプリの新規作成"を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/1b854a20-0626-b6cb-ee18-afb0e641cd19.png)


#### 1-3. "カスタムアプリ"を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/1132032f-54d0-3769-ae34-076b25b218fb.png)

#### 1-4. "ユーザー認証 (OAuth 2.0)"をチェックして、アプリ名を入力したうえで、"アプリの作成"を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/1f83814a-f98a-8a8c-beab-b84aa01f14d9.png)

#### 1-5. "OAuth 2.0リダイレクトURI"に、下記の値を入力。
- https://oauth.powerbi.com/views/oauthredirect.html
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/351eb7f4-fd56-32a2-6f00-33c372038104.png)

#### 1-6. "CORSドメイン"に、下記の値を入力。
- https://oauth.powerbi.com/views/oauthredirect.html
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/e1b1683b-07d6-c584-f9d7-f26d0086d33c.png)

#### 1-7. "アプリケーションスコープ"の"Boxに格納されているすべてのファイルとフォルダへの書き込み"をチェック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/be778e87-ae31-a9f4-6740-9f166b1334a2.png)


#### 1-8. 2の手順で利用する"クライアントID"と"クライアントシークレット"の値を控えて、"変更を保存"を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/a86307c7-b717-4951-8bd2-7e9379fa763f.png)

### 2.カスタムコネクタのビルド
#### 2-1. 下記のレポジトリを、クローン、もしくは、ダウンロード。

- https://github.com/xiaolangxyz/PQExtensionForBox
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/2cee3b64-af93-3876-7972-e3c8cd3aa5d6.png)

#### 2-2. "PQExtensionForBox.mproj"をVisual Studioで開く。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/d39be0fb-8f16-f7c5-9c02-5e1d2fd2d568.png)

#### 2-3. "client_id"のファイル内に"クライアントID"を、"client_secret"のファイル内に"クライアントシークレット"を入力。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/1315878b-8df4-ef3d-81ee-e58ea02b9eda.png)

#### 2-4. "ソリューションの構成"を"Release"に設定。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/0651258c-65a9-a5e9-15c6-b58540e22bcd.png)

#### 2-5. ソリューションを右クリックして、"ソリューションのビルド"を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/6bdf19e2-4810-58ef-fb60-8736ba0b09d6.png)

#### 2-6. ソリューションがあるフォルダにおける"./bin/Release"に、"PQExtensionForBox.mez"というファイルの存在を確認。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/dc229c0e-8d83-f2ae-437f-a5bcacad6967.png)

### 3.Power BI DesktopにてBoxへ接続したレポートの作成
#### 3-1. "PQExtensionForBox.mez"ファイルを、Power Bi Desktopのカスタムコネクターを配置するディレクトリ（通常は、ドキュメント\Power BI Desktop\Custom Connectors）にコピー。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/057bed35-51ed-5b11-ba7a-53a600586484.png)

#### 3-2. Power BI Desktopを起動後、"ファイル"タブを選択後、"オプションと設定"->"オプション"を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/fc202823-1716-e708-37cb-723e01b4190c.png)

#### 3-3. "データ拡張機能"にある"(非推奨)検証または警告せずに、あらゆる拡張機能の読み込みを許可する"をチェックして、"OK"を選択。Power BI desktopを再起動。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/e834c690-fa14-e480-d710-9d11aa5cd1f3.png)

#### 3-4. "データを取得"にて、"PQExtenstionForBox"というコネクタを選択し、"接続"を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/8490a46a-2ad0-3bb2-9c05-88facf9166b5.png)

#### 3-5. インポートするファイルがあるフォルダのURLを入力して、"OK"を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/e5eb3ab1-6dce-0c25-9699-5470bf063a6a.png)

#### 3-6. "サインイン"を選択して、Boxにへの接続を許可。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/e1764b2b-1896-ee63-d215-a08d019bdb04.png)


#### 3-7. "FileList"をチェックして、"データの変換"を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/f152e1c0-64f9-661a-9650-7bdd4c0e0fd9.png)

#### 3-8. "Table"を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/bdde3202-da64-0893-bc67-6adb7ea2d01c.png)

#### 3-9. "Table"を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/395ebe25-255e-1718-a04f-9f07928bf055.png)

#### 3-10. "1行目をヘッダーとして使用"を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/06074611-c65e-4e7c-46ff-bc0a36c93bf6.png)

#### 3-11. "閉じて適用"を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/c67bbb6c-66be-0d44-72a7-b6d8a3865d9a.png)

#### 3-11. 確認用のビジュアルを作成して、Power BI Servicesに発行。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/b5580514-4923-ad8f-15cf-31cff83b8d93.png)

### 4.Power BI Servicesにてカスタムコネクタの設定
#### 4-1. "PQExtensionForBox.mez"ファイルを、on-premises data gatewayのカスタムコネクターを配置するディレクトリ（通常は、C:\WINDOWS\ServiceProfiles\PBIEgwService\Documents\Power BI Desktop\Custom Connectors）にコピー。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/d06e35b1-98d3-79c5-397e-77ae3dd45e93.png)

#### 4-2. Power BI Servicesにログイン後、右上の"ゲートウェイの管理"を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/47731811-1d18-a4be-c9cc-b8425891e065.png)

#### 4-3. 接続しているオンプレミスゲートウェイを選択後、"データソースの追加"を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/85185ed5-5c00-b00f-e497-c059cb59beb1.png)

#### 4-4. 下記の設定を実施後、"資格情報を編集"にてBoxへの認証を実施したうえで、"追加"を選択。
| 項目               | 入力値                                   |
| ------------------ | ---------------------------------------- |
| データソース名     | 適切な名前                               |
| データソースの種類 | PQExtensionForBox                        |
| Url                | ファイルを配置しているBoxのフォルダのURL |
| 認証方法           | OAuth2                                   |
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/1290b6d7-a9ed-6b77-ffc2-59305bc195d4.png)

#### 4-5. 配置したPower BIデータセットの設定に移動後、"ゲートウェイ接続"にて作成済みのオンプレミスゲートウェイのデータソースをマップ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/50c5a0a0-5efb-6514-64e7-e8dff57d408e.png)

#### 4-6. データセットの更新を行い正常に接続できていることを確認。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/3d647868-fca3-8a8d-8776-d868cb33742a.png)

## 注意事項
### 1. 過去の接続情報がPower BI Desktopに残っている場合には削除してください。
1-1. "ファイル"タブを選択後、"オプションと設定"->"データ祖設定"を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/2bcf0cd1-0303-bae0-2e4a-b9d57c25b766.png)

1-2. Boxに関するデータソースの設定値を探して、"アクセス許可のクリア"にて接続情報を削除。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/3a427cbe-6da6-1a15-7dbb-9796d9aa0752.png)