# HubSpot連携に最適なのは何か。HubSpot非公開アプリと公開アプリの選択

**URL:** <https://community.hubspot.com/t/hubspot-hubspot/69170>\
**Category:** 日本語ブログ\
**Created:** [November 14, 2022, 6:52am UTC](https://community.hubspot.com/t/hubspot-hubspot/69170 "2022-11-14T06:52:28Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Yoshi](https://d10pqhm3lwygmk.cloudfront.net/user_avatar/community.hubspot.com/yoshi/32/80343_2.png) [@Yoshi](https://community.hubspot.com/u/Yoshi)\
**Post date:** [November 14, 2022, 6:52am UTC](https://community.hubspot.com/t/hubspot-hubspot/69170/1 "2022-11-14T06:52:28Z")

</div>

HubSpotではOAuthのため2種類のアプリをサポートしています。[公開アプリ](https://developers.hubspot.jp/docs/api/creating-an-app)と[非公開アプリ](https://developers.hubspot.jp/docs/api/private-apps)です。

全てのHubSpot APIは公開アプリでも非公開アプリでも、ほとんどの部分で同様に機能します。

非公開アプリのトークンと公開アプリのアクセストークンは両方とも、APIリクエストを行う際にHTTP Authorizationリクエストヘッダーで使用できます。どちらのタイプのアプリも同じ[OAuthスコープ](https://developers.hubspot.jp/docs/api/working-with-oauth#scopes:~:text=%E6%96%87%E5%AD%97%E5%88%97%E5%80%A4%E3%80%82-,%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%97,-OAuth%E3%81%A7%E3%81%AF%E3%80%81%E3%82%A2%E3%83%97%E3%83%AA)を使用して、アプリに許可するアクセスを設定します。これにより、アプリが機能するために必要な特定の権限のみが使用されるので、HubSpotアカウントのセキュリティ保護に役立ちます。

技術的観点からは公開アプリも非公開アプリも同様に機能しますが、それぞれには別の機能と用途があります。どのような場合にHubSpot公開アプリと非公開アプリのどちらを構築するかに関して、いくつかの例と推奨事項を示します。

**HubSpot公開アプリを構築する場合**

複数のHubSpotアカウントで使用することを意図したアプリは、公開アプリとして構築する必要があります。公開アプリは[HubSpotアカウントへのワンクリック接続](https://developers.hubspot.com/docs/api/creating-an-app#install-an-app)をサポートし、HubSpotユーザーは手動でのアプリ作成や、トークンのコピー アンド ペーストを必要とせずに、容易に連携に接続できます。

アプリを[HubSpotアプリマーケットプレイス](https://ecosystem.hubspot.com/ja/marketplace/apps)に掲載したい場合は、公開アプリを構築する必要があります。これは[掲載の必要条件](https://developers.hubspot.com/docs/api/app-marketplace-listing-requirements)であり、アプリが非公開アプリトークン用に構築されている場合は、マーケットプレイスを利用できなくなります。

さらに、公開アプリを作成することは、一部のHubSpotプラットフォーム機能を利用するための要件になっています。例えば、[Webhooks API](https://developers.hubspot.com/docs/api/webhooks)や[タイムラインイベント](https://developers.hubspot.com/docs/api/crm/timeline)を使用する場合、公開アプリを使用して連携を構築する必要があります。これらは開発者のアプリの機能としてセットアップされるからです。公開アプリには[カスタム設定ページ](https://developers.hubspot.com/docs/api/create-an-app-settings-page)もあり、ユーザーはHubSpotから離れることなく、自分のHubSpotアカウントのカスタム設定ページから自分のアプリの設定を更新できます。

 ![Yoshi_0-1668408521623.jpeg](https://d2qpr2jzcazej7.cloudfront.net/original/3X/5/7/57d43ee202afbae8af0e88c24d36ab054b698170.jpeg)

公開アプリでは認証にOAuth 2.0を使用しており、このことは個々のアクセストークンの寿命が短いことを意味します。

最初の接続の後、ユーザーはアクセストークンとリフレッシュトークンを受け取ります。アクセストークンはHubSpot APIへのリクエストに使用されますが、30分後に期限切れになります。古いアクセストークンの期限が切れたら、リフレッシュトークンを使用して新しいアクセストークンを生成できます。これは、連携でアクセストークンの管理と更新を行うだけでなく、リフレッシュトークンを長期間安全に保管するためのインフラストラクチャーが必要であることを意味します。

HubSpotでのOAuth 2.0の使用の詳細については、HubSpotの[OAuthのドキュメント](https://developers.hubspot.com/docs/api/working-with-oauth)をご確認ください。

**HubSpot非公開アプリを構築する場合**

非公開アプリは、単一のHubSpotアカウントでの使用が意図されているカスタム連携で使用できます。ただし、ユーザーは非公開アプリを手動で作成し、スコープを設定し、プライベートトークンをコピーして連携に貼り付ける必要があることに注意してください。

非公開アプリは、1回限りのスクリプトや単一のAPI呼び出しに適した選択肢です。例えば、[新しいカスタムオブジェクトを作成する](https://developers.hubspot.com/docs/api/crm/crm-custom-objects)ときや、スクリプトを使用している場合に[CSVファイルからCRMレコードをインポートする](https://developers.hubspot.com/docs/api/crm/imports)ときに、非公開アプリを使用できます。適切なスコープ設定で非公開アプリを作成し、トークンを使用してAPIリクエストを行ったりスクリプトでのリクエストを認証したりして、終了したら非公開アプリを削除する、ということができます。このようにして、トークンは使用し終えたらすぐに無効化します。

非公開アプリは、HubSpotで直接構築される連携にとっても優れた選択肢です。例えば、HubSpotワークフローのカスタム コード アクションで行われるAPIリクエストの認証に、非公開アプリトークンを使用できます。非公開アプリは、CMSサーバーレス関数や、チャットボットのコードスニペットにも使用できます。非公開アプリキーがHubSpotで使用される場合、シークレットとして安全に保存され、APIリクエストを行うのにそのシークレットが参照されます。

1つのHubSpotアカウントで複数の非公開アプリを使用することにより、さまざまな連携やジョブでトラフィックを分離することもできます。各非公開アプリにはそれぞれ独自のスコープのセットを設定できるため、各ジョブに付与する権限を、特定の必要なものだけに確実に限定することができます。例えば、複数のワークフロー コード アクションがあり、その全てが同じ外部サービスにデータを送信する場合、同じ非公開アプリトークンを共有できます。一方、複数の連携が別個の外部サービスにデータを送信する場合、外部サービスごとに別個の非公開アプリを使用できます。

非公開アプリトークンはOAuthアクセストークンと同様に機能しますが、期限切れはありません。トークンが紛失した場合や侵害された場合には[簡単にトークンのローテーションができます](https://developers.hubspot.com/docs/api/private-apps#rotate-your-access-token)。1つのHubSpotアカウント内の全ての非公開アプリはまとめて1日のレート制限を共有しますが、各非公開アプリで別個のバースト制限を持ちます。レート制限の詳細については、HubSpotの[開発者ドキュメント](https://developers.hubspot.com/docs/api/usage-details#rate-limits)をご確認ください。

**まとめ**

HubSpot APIへのAPIリクエストを行う観点では、公開アプリと非公開アプリに違いはほとんどありません。連携でHubSpot APIクライアントライブラリーを使用している場合、どちらのタイプのアプリでもクライアント作成時にアクセストークン認証タイプが使用されます。つまり、非公開アプリと公開アプリを切り替えるのに、既存のコードの大部分は変更する必要がありません。それで、テストまたはプロトタイプ作成目的で非公開アプリを作成し、公開リリース前に公開アプリに切り替えるということも簡単にできます。

現在アプリでAPIキーを使用している場合、[APIキーのサポートが終了する前に](https://developers.hubspot.com/changelog/upcoming-api-key-sunset)アプリを更新するのに役立つ、[連携を非公開アプリに移行](https://developers.hubspot.com/docs/api/migrate-an-api-key-integration-to-a-private-app)するためのガイドをご活用いただけます。ただし、複数のHubSpotアカウントによって使用されるアプリの場合は、そのアプリを公開にすることにより、顧客がインストールしやすくすることを検討する必要があります。

＊このブログは、Developer Blogのコンテンツを翻訳したものです。英語版のブログは[こちら](https://developers.hubspot.com/blog/hubspot-integration-choosing-private-public-hubspot-apps)からご覧ください。
