---
sourceDocument: Xanadu API リファレンス
sourceDocumentLink: https://www.servicenow.com/docs/r/ja-JP/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu API リファレンス

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# spContextManager - クライアント

# spContextManager - クライアント {#ariaid-title1}

* リリースバージョン: Xanadu
* 
* 更新日 2024年08月01日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：6分

サービスポータルウィジェットのデータを、サービスポータルページ内の他のアプリケーションやサービスで利用できるようにします。たとえば、ウィジェットデータがサービスポータルページで開いた際に、エージェントチャットにウィジェットデータを渡します。

spContextManager API は、サービスポータルウィジェットクライアントスクリプトで使用できる AngularJS サービスです。

この API に渡されるキーは、ページごとに一意です。たとえば、addContext() メソッドで`「agent-chat」`キーがページにある別のウィジェットによって既に初期化されている場合は、updateContextForKey() メソッドを使用してキーのデータを更新する必要があります。 使用可能なキーは次のとおりです。 agent-chat:ウィジェットデータを エージェントチャット に送信します。

エージェントチャット へのデータの受け渡しの詳細については、「[サービスポータルでのエージェントチャットの構成](https://www.servicenow.com/docs/access?context=configure-va-in-sp&version=xanadu&pubname=xanadu-platform-user-interface&ft:locale=en-US)」を参照してください。

## spContextManager - addContext(文字列 key, オブジェクト context) {#ariaid-title2}

キーを初期化し、ウィジェットデータを値として追加します。たとえば、「agent-chat」キーにデータを追加して、エージェントチャット で利用できるようにします。
このメソッドは、サービスポータル ページの特定のキーに初めてデータを追加するときに使用します。キーがページ上の別のウィジェットですでに使用されている場合は、代わりに updateContextForKey() メソッドを使用します。
{#SPCM-addContext_S_O__table_dsz_dcz_qhb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| key | 文字列 | データを送信するキーの名前。 利用可能なキーには agent-chat が含まれます。サービスポータル ページで開いたときに、エージェントチャットにウィジェットデータを送信します。 |
| context | オブジェクト | キーパラメーターで指定されたアプリケーションまたはサービスに送信する JSON 形式のウィジェットデータ。`{'approval_count': 5}` などです。 |
[表 : 1. パラメーター]

{#SPCM-addContext_S_O__table_dsz_dcz_qhb} {#SPCM-addContext_S_O__table_esz_dcz_qhb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 2. 返される内容]

{#SPCM-addContext_S_O__table_esz_dcz_qhb}  
`approval_count` を エージェントチャット に渡します。ユーザーが サービスポータル ホームページから エージェントチャット の会話を開始すると、`&sysparm_approval_count=5` が エージェントチャット `iframe` URL に追加されます。

    function ($scope, spContextManager) {
        spContextManager.addContext('agent-chat', {
            'approval_count': 5       
        });
    };

## spContextManager - getContext() {#ariaid-title3}

ページ上のウィジェットによって定義された各キーと、それに関連するデータオブジェクトを返します。
このメソッドを使用すると、パフォーマンスに影響する可能性があります。このメソッドは、ページで初期化されているキーを把握し、その現在の値を取得するために使用します。アクセスする必要のあるキーがわかっている場合は、代わりに getContextForKey() メソッドを使用してください。
{#SPCM-getContext__table_qgk_tdz_qhb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 3. パラメーター]

{#SPCM-getContext__table_qgk_tdz_qhb} {#SPCM-getContext__table_rgk_tdz_qhb__entry__2}

| タイプ | 説明 |
|-|-|
| オブジェクト | ページ上で定義された各キーと、それに関連するデータオブジェクト。 |
[表 : 4. 返される内容]

{#SPCM-getContext__table_rgk_tdz_qhb}  

    function ($scope, spContextManager) {
      spContextManager.getContext();
    } 

## spContextManager - getContextForKey(文字列 key, ブーリアン returnPromise) {#ariaid-title4}

キーに関連付けられたウィジェットデータを返します。
{#SPCM-getContextForKey_S_B__table_w2r_jcz_qhb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| key | 文字列 | コンテキストを取得するキーの名前。使用可能なキーは次のとおりです。 agent-chat:ウィジェットデータを エージェントチャット に送信します。 |
| returnPromise | ブーリアン | キーに関連付けられたデータを promise として返すか、オブジェクトとして返すかを決定するフラグ。次の値が含まれます。 * true：データを promise として返します。ページ上の別のウィジェットが addContext() メソッドを使用して同じキーを初期化する場合は、このオプションを使用します。promise を返すと、キーがまだ初期化されていない場合に、未定義のオブジェクトが返されなくなります。 * false：キーに関連付けられたデータを含むオブジェクトを返します。 {#SPCM-getContextForKey_S_B__ul_ccf_jvc_shb} |
[表 : 5. パラメーター]

{#SPCM-getContextForKey_S_B__table_w2r_jcz_qhb} {#SPCM-getContextForKey_S_B__table_x2r_jcz_qhb__entry__2}

| タイプ | 説明 |
|-|-|
| Promise | returnPromise が true の場合、ページ上の別のウィジェットがキーを初期化するときに実行される promise を返します。 |
| オブジェクト | returnPromise が false の場合は、キーに関連付けられたデータを含むオブジェクトを返します。`{approval_count: 5}` などです。 |
[表 : 6. 返される内容]

{#SPCM-getContextForKey_S_B__table_x2r_jcz_qhb}  
`approval_count` を エージェントチャット に渡します。ユーザーが サービスポータル ホームページから エージェントチャット の会話を開始すると、`&sysparm_approval_count=5` が エージェントチャット `iframe` URL に追加されます。

    function ($scope, spContextManager) {
      spContextManager.getContextForKey('agent-chat', true).then(function(context) {
        context = context || {};
        context.approval_count = 5; 
        spContextManager.updateContextForKey('agent-chat', context);
      });
    } 

## spContextManager - updateContextForKey(文字列 key, オブジェクト context) {#ariaid-title5}

既存のキーにデータを送信します。例えば、ページ上の別のウィジェットが「agent-chat」キーを使用して エージェントチャット 構成にデータを渡している場合、addContext() メソッドを使用するのではなく、キーのコンテキストを更新する必要があります。
{#SPCM-updateContextForKey_S_O__table_mhr_lcz_qhb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| key | 文字列 | データを送信するキーの名前。 利用可能なキーには agent-chat が含まれます。サービスポータル ページで開いたときに、エージェントチャットにウィジェットデータを送信します。 |
| context | オブジェクト | キーパラメーターで指定されたアプリケーションまたはサービスに送信する JSON 形式のウィジェットデータ。`{'approval_count': 5}` などです。 |
[表 : 7. パラメーター]

{#SPCM-updateContextForKey_S_O__table_mhr_lcz_qhb} {#SPCM-updateContextForKey_S_O__table_nhr_lcz_qhb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 8. 返される内容]

{#SPCM-updateContextForKey_S_O__table_nhr_lcz_qhb}  
`approval_count` を エージェントチャット に渡します。ユーザーが サービスポータル ホームページから エージェントチャット の会話を開始すると、`&sysparm_approval_count=5` が エージェントチャット `iframe` URL に追加されます。

    function ($scope, spContextManager) {
      spContextManager.getContextForKey('agent-chat', true).then(function(context) {
        context = context || {};
        context.approval_count = 5; 
        spContextManager.updateContextForKey('agent-chat', context);
      });
    } 


