最終更新日: 2025年9月11日
旧バージョンの開発者フレームワークで非公開アプリを構築したことがある場合は、アプリの設定を新しいフレームワーク(2025.2
)に手動で移行できます。
このガイドでは、次の項目について概説します。
- まず、既存のプロジェクトを複製することで、元のファイルをバックアップとして利用可能にします。その後、関連するそれぞれの設定ファイルをレビューして、新しいプロジェクトスキーマに確実に準拠させます。その際、コンポーネント設定ファイルの名前と構造、および該当するプロパティーを少し更新する必要があります。
- 次に、既存の最上位レベルの設定ファイル
hsproject.json
およびapp.json
を更新します。- その後、以降の各セクションに従い、開発者プラットフォームのバージョン
2025.2
に適合するようにアプリコンポーネントの設定を更新できます。その際、設定済みの既存の機能(例えばUI拡張機能を使っ構築されたアプリカード)に基づいて更新を行います。 - なお、
hsproject.json
ファイルを除く他の全ての設定ファイルは、予測可能な命名スキーム(*-hsmeta.json
、ただし*
は特定のディレクトリーまたはコンポーネントに基づく)に従うこと、また全て同じ最上位レベルのプロパティーを共有することに注意してください。
- その後、以降の各セクションに従い、開発者プラットフォームのバージョン
- 複製した既存プロジェクトの全てのコンポーネントの更新が終わったら、本ガイドの最後のステップで、新しいプロジェクトをHubSpot開発者アカウントにアップロードします。
既存のプロジェクト設定ファイルを複製する
何らかの更新を行う前に、既存のプロジェクトを複製します。これはバックアップとなり、問題が発生した場合にこれを参照またはフォールバックできます。プロジェクトを複製した後、複製されたプロジェクトファイルをVSCodeなどの任意のIDEで開きます。 新しい2025.2
スキーマに準拠した最小規模のプロジェクトを参照したい場合は、ボイラープレートテンプレートを次のようにダウンロードできます。
- コマンド
npm i -g @hubspot/cli@next
を実行して、HubSpot CLIの最新のベータ版バージョンがインストールされたことを確認し、hs auth
およびhs accounts use
コマンドを使用してそれをアカウントに接続します。 - ターミナルで以下のコマンドを実行することにより、
private
配布およびstatic
認証を使用するアプリ用のボイラープレートテンプレートに基づくプロジェクトを作成します。
- プロンブトに従って、名前と、ボイラープレートテンプレートのダウンロード先のローカルディレクトリーを指定します。
- テンプレートを選択するよう求められたら、[Getting started project with private app using an access token(アクセストークンを使用した非公開アプリのプロジェクトを開始)]****を選択します。
- 新しく作成したプロジェクトを任意のエディターで開きます。次に、プロジェクトディレクトリー構造および関連する
*-hsmeta.json
スキーマファイルを既存のプロジェクトと比較して、該当する仕様が一致していることを確認できます。テンプレートはあくまで参考用ですから、直接編集しないでください。そうする代わりに、上記で説明したプロジェクトの複製バージョンを編集することをお勧めします。
2025.2
の新しいプロジェクト構造に関する詳細なリファレンスは、アプリ設定ガイドで詳しく説明されています。
hsproject.json設定を更新する
最上位レベルのhsproject.json
を変更する際には、以下のコードブロックに示すとおり、name
プロパティーとplatformVersion
プロパティーを少し変更します。
従来
hsproject.json
ファイルは新しい開発者プラットフォームでも同じ場所にありますが、platformVersion
を"2025.2"
に更新する必要があります。また、アップロード時に既存のプロジェクトがオーバーライドされないように、name
フィールドを一意の名前に更新することもできます。例えば、既存の非公開アプリの名前がMy private app
である場合、古いアプリと区別するために(Developer Platform v2025.2)
などを付加できます。
アプリの最上位レベルのスキーマをレビューする
以下のコードブロックは、必要な変更を行う前と後の設定例を示しています。 変更前(src/app/app.json
):
src/app/app-hsmeta.json
):
app.json
ファイルで指定されていました。現在、アプリのこれらの詳細設定は、/src/app/app-hsmeta.json
ファイル内のアプリ スキーマ ファイルで指定されるようになっています。以前のapp.json
設定と新しいapp-hsmeta.json
設定の主な変更点は次のとおりです。
- 最上位レベルの
public
プロパティーはdistribution
に置換され、これをprivate
に設定する必要があります。なお、auth
フィールドのtype
サブプロパティーをstatic
に設定する必要があります。これにより、アプリのインストールが1つのアカウントに制限されます。アプリの配布と認証の詳細については、アプリ設定ガイドを参照してください。 - 現在ではアプリのスコープが
auth
フィールドのサブプロパティーとして指定され、requiredScopes
、conditionallyRequiredScopes
、optionalScopes
に分割されるようになりました。これらの各スコープタイプの指定については、アプリ設定ガイドをご確認ください。 - 以前のプロジェクトの最上位レベル
extensions
プロパティーを定義する必要はありません。これは、新しいapp-hsmeta.json
ファイルにこのプロパティーが存在しないからです。以前に設定されたUI拡張機能(例えばCRMレコードページ上のカード)は、プロジェクトのcards/
ディレクトリーを使って管理されます。そのディレクトリー内では、カード設定の詳細が*-hsmeta.json
ファイルで指定され、*-hsmeta.json
ファイルのentrypoint
プロパティーを使って参照される.jsx
ファイルではカードのコンポーネントコードが提供されます。 - また、Webhookの設定と管理はプロジェクトの
webhooks/
ディレクトリーを使って行われるので、新しいapp-hsmeta.json
ファイルで以前のプロジェクトの最上位レベルwebhooks
プロパティーを定義する必要もありません。詳細については後述のWebhook配信登録(サブスクリプション)を移行するセクションをご覧ください。
個々のコンポーネント設定を更新する
以下のセクションでは、UI拡張機能やWebhookを新しいアプリに移植する方法について概説します。以前のアプリにこれらのコンポーネントが含まれていなかった場合は、プロジェクトをアップロードするセクションに進んでください。UI拡張機能を使用して作成されたCRMカードを移行する
以下のコードブロックは、必要な変更を行う前と後の設定例を示しています。 変更前(src/app/extensions/card.json
):
src/app/cards/example-app-card-hsmeta.json
):
cards/
ディレクトリー内で設定されるようになり、古いプロジェクトの古いextensions/
ディレクトリーから置き換わります。新しいcards/
ディレクトリー内では、カード設定の詳細が*-hsmeta.json
ファイルで指定され、*-hsmeta.json
ファイルのentrypoint
プロパティーを使って参照される.jsx
ファイルではカードのコンポーネントコードが提供されます。
旧バージョンのアプリのUI拡張コードを移植するには、以前のapp.json
から該当する全ての値をcards/
ディレクトリーの*-hsmeta.json
ファイル内の関連するプロパティーにコピーします。その際、次の変更点に留意してください。
type
プロパティーの値が"crm-card"
から"card"
に変更されました。uid
プロパティーがdata
フィールドのサブプロパティーから上に移動され、設定の最上位レベルで指定されるようになりました。data
プロパティーがconfig
に変更され、次のサブプロパティーが含まれるようになりました。title
プロパティーの名前がname
に変更されました。- 新しい
description
プロパティーでは、カードの機能についてより多くのコンテキストを説明できます。この説明はアプリのプロジェクト設定に表示されます。 module
プロパティーの名前がentrypoint
に変更され、その値はJSXコンポーネントへのパスを表す文字列(プロジェクトのルートを基準とした相対パス)になりました(例:"/app/cards/example-app-card.jsx"
)。objectTypes
プロパティーが簡略化され、カードの表示場所となるオブジェクトタイプを表す文字列の配列になりました(例:["CONTACT", "COMPANY"]
)。location
プロパティーは変更されず、これをcrm.record.tab
、crm.record.sidebar
、helpdesk.sidebar
のいずれかに設定できます。
example-app-card-hsmeta.json
設定ファイルおよびexample-app-card.jsx
JSXコンポーネントがsrc/app/cards
ディレクトリーに提供されています。
新しい開発者プラットフォームでアプリカードを作成する方法について詳しくは、こちらの記事をご覧ください。
Webhook配信登録(サブスクリプション)を移行する
以下のコードブロックは、必要な変更を行う前と後の設定例を示しています。 変更前(src/app/webhooks/webhooks.json
):
src/app/webhooks/webhooks-hsmeta.json
):
webhooks/
ディレクトリー内で管理されます。ディレクトリー内では、配信登録の詳細は*-hsmeta.json
ファイルで指定されます。ファイルの構造は非公開アプリの以前のwebhooks.json
スキーマとほぼ同じですが、次の主な変更点に留意してください。
- 必須の
uid
プロパティーを*-hsmeta.json
ファイルの最上位レベルで定義する必要があり、他のアプリ機能と区別される名前をこれに提供する必要があります(例:"migrated_private_app_webhooks"
)。 - また、必須の
type
プロパティーを*-hsmeta.json
設定の最上位レベルで定義し、これを"webhooks"
に設定する必要があります。 subscriptions
プロパティーとsettings
プロパティーはwebhooks.json
から変更されていませんが、*-hsmeta.json
ファイルの最上位レベルで定義されるconfig
プロパティーの中にこれらを移動する必要があります。
プロジェクトをアップロードする
既存の非公開アプリの設定をプロジェクトの各サブディレクトリーの中に移行した後は、新しいアプリをHubSpotアカウントにアップロードできます。その場所から、APIリクエストの認証に使用できるアプリのアクセストークンを見つけたり、新しい開発者プラットフォームで機能を構築し続けたりできます。
新しいプロジェクトをアップロードするには、次のCLIコマンドを実行します。
サーバーレス関数の処理を移行する
非公開アプリにサーバーレス関数が含まれていた場合は、独自のRESTベースのバックエンドサービスを作成し、hubspot.fetch()
APIを使ってデータを取得する必要があります。その際、HubSpotでホスティングされるサーバーレス関数で以前に定義されていた既存のサービスロジックと、非公開アプリのアクセストークンを、サードパーティーのホスティングプラットフォーム(Vercel、DigitalOcean、AWSなど)に移行する必要があります。
サーバーレス関数ロジックをサードパーティーのホスティングプラットフォームに移行するには、次のようにします。
- 既存の非公開アプリプロジェクトの
src/app/app.functions
ディレクトリー内でサーバーレス関数を見つけます。 - 関数にある該当するロジックを全てコピーします。以下のサーバーレス関数の例では、4行目のみをコピーする必要があります。
- サードパーティーのホスティングプラットフォームで、以前のサーバーレス関数定義のロジックを貼り付け、パラメーター名が全て合致していることを確認します。ご使用のプラットフォームでのサーバーレス関数の定義に関するドキュメントを参照してください。
- アプリのプロジェクト詳細ページからアクセストークンをコピーし、サードパーティーのホスティングプラットフォームの環境変数としてそれを追加して、コードから参照できるようにします。
-
次に、最上位レベルの
app-hsmeta.json
スキーマファイルのpermittedUrls
プロパティーを更新して、fetch
フィールドを含める必要があります。このフィールドの値は、サードパーティーのホスティングプラットフォームでホスティングされるエンドポイントのURLを含む配列に設定してください。 -
次に、アプリカードのReactコード内の全ての参照を更新して、セットアップした新しいサーバーレス関数URLを呼び出すようにします。
hubspot.fetch()
の使用について詳しくは、こちらのガイドをご覧ください。
片付ける
こうして新しいプロジェクトを正常にアップロードし、サーバーレス関数の処理(該当する場合)を全てに移行し、アプリの動作に一貫性があることを十分にテストした後は、HubSpot開発者アカウント内の古いプロジェクトを削除できます。このガイドの最初のステップで概説したように、参照用に必要になった場合に備えて、プロジェクトの元のバックアップがローカルに残っていることに留意してください。 開発者アカウントから古いプロジェクトを削除するには、次のようにします。- HubSpotアカウントで、[開発]に移動します**。**
- [****プロジェクト]ページで、古いプロジェクトの名前をクリックします。
- 「設定」 タブをクリックする。
- [このプロジェクトを削除]__で、****[[プロジェクト名]を削除]をクリックします。
- ダイアログボックスの情報を確認して、続行してもよいことを確定します。次に、プロジェクトの名前を入力して[プロジェクトを削除]をクリックします****。
