1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Files ConnectでGoogle DriveをSalesforceに接続

Last updated at Posted at 2024-11-29

今回は、Files ConnectでGoogle DriveをSalesforceに接続することができたので、その手順紹介します。

Files Connectとは?

Files ConnectとはSalesforceが提供するGoogle Drive, Box, OneDriveなど外部のストレージにあるファイルをSalesforce内で参照またはコピーすることができる機能です。
Salesforce Files Connect

google-drive-option.png

設定手順

ヘルプページと大体同じですが、自分としてはわかりやすい手順としては以下になるかと思います。

  1. [Google] Google Drive APIを有効化
  2. [Google] Google で「プロジェクト」を作成
  3. [Google] Google で「認証情報」を作成
  4. [Salesforce] Google ドライブのAuth. Providerを作成
  5. [Google] Callback URLをAuthorized redirect URIsに追加
  6. [Salesforce] Files Connectを有効化
  7. [Salesforce] Permission Setを作成し割り当て
  8. [Salesforce] Google ドライブのExternal Data Sourceの定義
  9. [Salesforce] ユーザーごとのData Sourceでは、Salesforce でユーザーを認証
  10. [Salesforce] グローバル検索に外部データを含める(任意)

1. Google Drive APIを有効化

まず連携したいGoogleアカウントのGoogle Developer Console (https://console.developers.google.com/) へ移動して Google Drive APIを有効化します。検索窓に[Google Drive API]と入力すると出てきます。

google-drive-api-search.png
このEnableを押すと有効化になります。
google-drive-api-enabled.png

2. Google で「プロジェクト」を作成

次に、同Google Console内でプロジェクトを作成します。

Console 画面でプロジェクトを作成

google-new-project.png

プロジェクトに任意の名前

プロジェクトに任意の名前をつけます。
google-project-name.png

3. Google で「認証情報」を作成

Auth Consent Screenを作成

こちらは最低限の画面を作成すればいいです。Credentialsを作成する際、SalesforceからGoogleへのアクセスを許可する認証の際の画面を一つは作成しておく必要があります。
Internalを選ぶと同ドメインアカウントのみのアクセスになりよりセキュアになります。
Oauth-consent-screen.png

開発者連絡先

開発者連絡先はご自身か管理者がいれば、その方のメールを入力。
developer-contact-email.png

Credentials を作成

google-credential-create.png

Credentialsが作成後

Credentialsが作成されるとこの管理画面になります。
google-credential-successful.png
(Client IDとConsumer Secretが作成され、次のAuth. Providerの工程で利用します)

Credentialsを表示

Salesforceをクリックすると、右半分に情報が出てきます。Client IDClient secretは次の「Google ドライブのAuth. Providerを作成」で使います。
google-credentials.png

4. Google ドライブのAuth. Providerを作成

次ですが、Google DriveへのアクセスをOAuthで認証します。これをすることによって、ユーザーがGoogleアカウントで認証し、必要な権限(例: Google Driveへのアクセス)を付与するプロセスをSalesforce内で安全に管理できます。
salesforce-auth-provider-select.png
Provider Type はOpen ID Connectを選択。
ここで、上記ステップでGoogle Consoleで作成したProjectから取得したClient IDConsumer Keyに、Client secretをConsumer Secretに充てます。

Auth-providers.png

必要情報:

項目
Provider Type Open ID Connect
Name GoogleDrive(任意)
URL Suffix GoogleDrive (任意)
Consumer Key {Client ID} (GoogleのProject内で入手)
Consumer Secret {Client secret} (GoogleのProject内で入手)
Authorize Endpoint URL https://accounts.google.com/o/oauth2/auth?access_type=offline&approval_prompt=force
Token Endpoint URL https://accounts.google.com/o/oauth2/token
Default Scopes openid email profile https://www.googleapis.com/auth/drive

Auth-providers.png

参考: Google ドライブの認証プロバイダーの作成

5.Callback URLをAuthorized redirect URIsに追加

これが面倒なのですが、上記で作成したSalesforceのAuth. Providersの情報のうちの一つ「Callback URL」をコピペして、GoogleのProject内にあるAuthorized redirect URIsに追加する必要があります。
Authorized redirect URIs.png

6. Files Connect を有効化

ここで、Files Connectの挙動を設定しますが、CopyReferenceの二つがあります。

  • Copy
    Salesforce に外部ファイルのコピーを保存します。ファイルが Chatter グループと共有されている場合、外部システムへのアクセス権がなくても、すべてのグループメンバーがファイルにアクセスできます。
  • Reference
    Salesforce 外に保存されている外部ファイルを参照します。ファイルプレビューが使用できないため、ファイルのダウンロードには外部システムへのユーザーアクセス権が必要です。(ユーザーは個人設定の [外部システムの認証設定] セクションでシステムのログイン情報を入力する必要があります)

files-connect-setting.png

コピーをすると、ストレージにあるファイルをまるまるコピーしてSalesforce Filesに保管するので今回のストーレージ省略の目的に合致しないので、Reference(参照)でいきます。Copyの利点はそのままSalesforceからのEmailなどの添付として利用できます。Referenceの利点は常に最新のファイルバージョンが表示されるのですが、添付では使用できないようです。

7. Permission Setを作成し割り当て

次にFiles Connect Cloudを有効にするPermission Setを作成し、適用したいユーザーに対して割り当てます。とりあえずGoogleDriveという名前で、ライセンスはSalesforceに限定。場合によっては別のライセンスでも可能です。
permission-set.png

次にFiles Connect Cloudをの権限をSystem Permission内に探して、チェックを入れます。
permission-set-files-conenct-cloud.png

Files-connect-Cloud.png

次に、このPermission Setを利用するユーザーに割り当てます。
permission-set-assignment.png

Nextボタンを押せば割り当て完了です。
permission-set-asignment-edit.png

8. Google ドライブのExternal Data Sourceの定義

Permissionを割り充てた後、External Data Sourceを定義していきます。先にPermissionを割り当てないとFiles Connectの選択肢が出てきませんので順番注意。
External-data-source.png

Start Authentification on saveにチェックを入れていると、Google アカウントを利用したOauthのフローが始まりますので、承認していきます。
google-auth.png

Allowで進むと、Authenticatedになります。
google-authenticated.png

さらに、先ほどのPermission Setに戻り、External Data Source Accessで、上記のExternal Data Source (GoogleDrive)を左から右へ移動させ、PermissionSetでアクセスできるSourceへと追加します。

permission-set-external-data-source.png

これで追加完了です。
permission-set-external-data-source-allow.png

9. ユーザーごとのData Sourceでは、Salesforce でユーザーを認証する

とりありえず、Filesのタブからファイルをみてみます。
files-google-drive.png
そうするとまた、認証をせよとのこと。再度GoogleのOAuth画面で認証すると見事ファイルフォルダが見えました。
files-google-drive-authrized.png

実際に添付していくにはAdd Filesでこちらの画面を開きます。
add-files.png

追加選択画面です。
access-files.png

追加してみると、ReferenceとしてGoogle Driveのロゴがついたファイルが追加されていきます。
added-files.png

プレビューはやや小さいけど見れるだけプラス。複数枚のPDFやSlidesなどは一ページ目のみです。実際に下部のボタンを押せばGoogle Driveの実際のファイルへ飛びます。これがReferenceでの挙動になります。
preview-1.png

hibari-cafe-kumamoto.png

添付したものは、あくまで参照リンクなので、ファイルサイズはまさかの「ー」(無)。これで、組織内のファイルストレージを圧迫することはありません。
file-size-zero.png

10. グローバル検索に外部データを含める(任意)

External Objectを追加

まずExternal Objectを追加します。名前はGoogle Drive.
external-object.png

Permission SetにExternal Objectを追加

Permission SetにGoogle DriveというCustom Objectが出現し、Read Permission を付与します。
external-object-permission.png

Validate and Sync

Validate and Syncを押すとitems_Google_Driveというものが出てきますが、Name FieldをNameにして Syncすると、完成です。
external-object-validate-sync.png

Global Searchを試す

晴れてGoogle Drive内のファイルをSalesforce内でGlobal Search検索することができるようになりました。
external-object-search.png
とはいえ、全ファイルが検索できるとは限らず、Sync待ちでしょうか。
グローバル検索での Files Connect データソースの追加

Search Layout変更

より多くの情報を表示するため、Search Layout変更します。
search-layout.png

注意点

いいことづくめのようですが、欠点もあります。

  1. 添付ファイルとして送信できない。(選択はできるのですが、実際は何も添付されません)回避策としてGoogle Driveから、ファイルのIDを取ってくるということはできるので、Anyone with link状態であれば、添付ではなくそのGoogle Driveへのリンクをシェアという形で送信はできます。
  2. ファイル選択の検索が貧弱
  3. 24のRecentファイルしか取得できない。
  4. ReferenceではなくCopyを選択すると添付では使用できるがストレージの節約にはならない。
  5. Shared Driveのファイルが利用できない。(なので、複数名でアップロードしたものを閲覧し合うには、共有の編集・閲覧権限のあるフォルダを用意した方がいい)
  6. SalesforceからGoogle Driveへファイルをアップロードすることはできない

最後のSalesforceからGoogle Driveへは、Google Drive APIとLWC, Apexを利用して可能なので、12月のアドベントカレンダーに記載していこうかと思います。

  • Google DriveへのFolder のupsert
  • Google DriveへのFile upload
  • Google DriveへのFile view
    等々をカバーする予定です。

共有フォルダを作成してそこの画像でないと違うユーザーごとがアップしたファイルは閲覧できない感じだったのですが、log in as ではうまく検証出来ないので、そこらへんも追加で書くかもしれません。

次の記事

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?