こんにちは。香田です。
Salesforceの顧客情報等をデータウェアハウスに保存し、他のデータと組み合わせ
分析したいといった要望はよくあるのではないでしょうか。
Salesforceのデータを統合するパイプラインとして、GCPのCloud Data Fusionは一つの選択肢として活用できます。
今回、GCPのCloud Data Fusionで提供されているSalesforce Pluginを利用する際、
認証情報としてUsername、Passwordの他にConsumer KeyとConsumer Secretが必要なのですが、
Salesforceにて認証情報を発行するフローにつまづいたので、ここではシンプルな手順を紹介しておきます。
はじめに
利用するSalesforceのエディションによっては、API アクセスは許可されていないようです。
事前に利用しているSalesforce エディションでAPI アクセスが許可されているかは下記で確認できます。
今回私の方は、無料で利用できる開発環境「Developer Edition」を利用しております。
接続アプリケーションの作成
はじめに接続アプリケーションを作成していきます。
[設定]より[クイック検索]に[アプリケーション]と入力します。
[アプリケーションマネージャ]、[新規接続アプリケーション]をクリックします。
[接続アプリケーション名]、[API 参照名]、[取引先責任者 メール]を入力します。
[OAuth 設定の有効]、[デバイスフローで有効化] をクリックします。
[選択したOAuth 範囲]ですが、ここでは[フルアクセス(full)]を追加しております。
適宜環境に合わせて権限は調整してください。
ほかは全てデフォルト値にしておき、問題なければ[保存]をクリックし[次へ]へクリックします。
Consumer KeyとConsumer Secretの確認
Consumer KeyとConsumer Secretが発行されているので、
[API (OAuth 設定の有効化)]より[コンシューマ鍵]と[コンシューマの秘密]を確認しコピーしておきます。
接続アプリケーションの IP 制限の緩和
デフォルトだとアクセスが制限されている状態なので変更します。
[クイック検索]に[接続アプリケーション]と入力します。
[接続アプリケーションを管理する]より作成したアプリケーションを選択します。
[ポリシーを編集]の[IP 制限の緩和]より[IP 制限の暖和]を選択し[保存]をクリックします。
curlで接続確認
curlコマンドで接続確認します。アプリケーション作成後は利用できるようになるまで10分程かかるので注意してください。
正常にアクセストークがレスポンスとして返ってくれば成功です。
$ curl -s https://login.salesforce.com/services/oauth2/token \
-d "grant_type=password" \
-d "client_id=<Consumer Key>" \
-d "client_secret=<Consumer Secret>" \
-d "username=<Username>" \
-d "password=<Password>"
Cloud Data FusionのSalesforce pluginで接続確認
GCPのCloud Data Fusionでも使えるか確認してみます。
[Studio]画面の[Source]より[Salesforce]を選択し[Properties]をクリックします。
[Username]、[Password]、[Consumer Key]、[Consumer Secret]を入力します。
SOQL Queryを入力し[GET SCHEMA]をクリックします。
[Output Schema]にSchema情報が表示されていれば成功です。
さいごに
Salesforceの顧客データや販売データ等とGCPのAIプロダクトを組み合わせて、ユーザーを特定のセグメントに分割し広告配信に利用する等データ活用パターンができると素敵ですね!
最後までご覧頂きありがとうございます。