LoginSignup
1
0

FivetranとSalesforceをAPI連携する方法について

Last updated at Posted at 2024-02-23

FivetranとSalesforceを連携する方法を紹介します。

接続アプリケーションを作成する

アプリケーションマネージャーから新規接続アプリケーションを作成します。

スクリーンショット 2024-02-23 16.07.19.png

設定ではOAuth設定を有効化しましょう。

スクリーンショット 2024-02-23 16.22.03.png

その他設定はこちらです。

  • コールバックURL:http://localhost:8080/oauth2/callback
  • 選択したOAuth範囲
    • いつでも要求を実行
    • APIを使用してユーザーデータを管理(api)
  • PKCF拡張を要求:オフ

コールバックURLにはローカルを指定しました。
このURLにアクセスすることで認証コードを受け取れます。
コールバックURL(リダイレクトURL)の作り方はこちらを確認ください。
リダイレクトURLとは?URLを作成しアクセストークンを受け取る方法を紹介

またOAuth範囲にいつでも要求を実行(refresh_token, offline_access)を含めることでrefresh_tokenが取れます。

Fivetranの連携では必ずrefresh_tokenが必要なのでこの設定は忘れてはいけません。

以上で保存します。

コンシューマーキーと秘密鍵を取得する

コンシューマーの詳細を管理をクリックしシークレット情報を得ます。

スクリーンショット 2024-02-23 16.23.50.png

シークレット情報は大切に保管しましょう。

スクリーンショット 2024-02-23 16.26.06.png

OAuth2.0認証をする

認証コードを取得する

認証URLをブラウザで実行します。

https://login.salesforce.com/services/oauth2/authorize?response_type=code&client_id=YOUR_CONSUMER_KEY&redirect_uri=YOUR_CALLBACK_URL

実行するときは一部の値を変えましょう。

ドメインは設定から私のドメインで確認ができます。
スクリーンショット 2024-02-23 17.07.38.png

認証URLを実行すると承認を求められるので許可しましょう。
スクリーンショット 2024-02-23 17.06.45.png

するとURLが変わりました。
code以下が認証コードです。

スクリーンショット 2024-02-23 17.10.48.png

リフレッシュトークンを取得する

続いてリフレッシュトークンを取得しましょう。

# リクエストパラメータ
CLIENT_ID="xxxxxxxxxxxxxxxxx"
CLIENT_SECRET="yyyyyyyyyyyyyyyyyy"
# 認証コード
CODE="zzzzzzzzzzzzzzzzzzzz"
# リダイレクトURI
REDIRECT_URI="http://localhost:8080/oauth2/callback"

# cURLを使用してリクエストの実行
curl -X POST "https://[私のドメイン]の名前.my.salesforce.com/services/oauth2/token" \
     -d "grant_type=authorization_code" \
     -d "client_id=${CLIENT_ID}" \
     -d "client_secret=${CLIENT_SECRET}" \
     -d "code=${CODE}" \
     -d "redirect_uri=${REDIRECT_URI}" | jq
  • client_id:コンシューマー鍵
  • client_secret:コンシューマーの秘密
  • code:認証コード

それぞれ置き換えましょう。

実行結果
スクリーンショット 2024-02-23 17.21.39.png

リフレッシュトークンが取得できていますね!

FivetranとSalesforceの連携

Fivetran APIを使いSalesforce用コネクタを作成します。

# FivetranのAPIキーとシークレットを設定
API_KEY="aaaaaaaaaaaa"
API_SECRET_KEY="bbbbbbbbbbbb"

# APIエンドポイント
URL="https://api.fivetran.com/v1/connectors"

# リクエストボディ
BODY='{
    "service": "salesforce",
    "group_id": "herring_idealness",
    "config": {
    	"schema": "test"
  	},
    "auth": {
        "client_access": {
            "client_id": "xxxxxxxxxxxx",
            "client_secret": "yyyyyyyyyyyyyy"
        },
        "refresh_token": "zzzzzzzzzzzzzzz"
    }
}'

# APIリクエストの実行
curl -X POST "$URL" \
     -u "$API_KEY:$API_SECRET_KEY" \
     -H "Content-Type: application/json" \
     -d "$BODY" | jq

実行結果
スクリーンショット 2024-02-23 17.46.21.png

コネクタを作成できましたね。

スクリーンショット 2024-02-23 17.50.10.png

Salesforceがトライヤルのためか連携が完了していません。(残念)
本利用している場合は適切な権限があればこの手順で連携が完了すると思います。

{
  "title": "Connecting to API",
  "status": "FAILED",
  "message": "The REST API is not enabled for this Organization."
}

※補足

APIアクセスの制限
Professional Editionでは、デフォルトではAPIアクセスが提供されないか、または非常に限定的です。

トライヤルはProfessional EditionのためAPIが使えないようですね。

まとめ

今回はFivetranとSalesforceのAPI連携について紹介しました。

OAuth認証で詰まった方も多いでしょう。
私もだいぶ苦労したので手順をまとめました。

参考になれば幸いです。

1
0
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
0