---
title: "連絡先および相互作用データの作成、取得、検索"
slug: "create-retrieve-and-search-contact-and-interaction-data"
abstract: "xConnect APIを使って連絡先やインタラクションデータの作成、取得、検索方法、そしてxConnectを拡張する方法について。"
---
# 連絡先および相互作用データの作成、取得、検索

## xConnectクライアントAPI

[xConnect Client API](https://doc.sitecore.com/xp/ja/developers/93/sitecore-experience-platform/xconnect-client-api-overview.html "xConnect Client API overview")は、連絡先やインタラクションのデータの作成、取得、検索を可能にします。クライアントはコレクションデータベースや検索インデックスに直接アクセスできません。基盤となるRESTフルウェブAPIはoDataプロトコルを実装しており、すべての通信はHTTPS上で行われます。

以下の例は、SitecoreコンテキストでxConnect Client APIのインスタンスを取得する方法を示しています:

using Sitecore.XConnect;
using System;
using System.Threading.Tasks;
using System.Linq;

namespace Documentation
{
 public class GetFacetsMultiple
 {
 public async void Example()
 {
 using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient())
 {
 try
 {
 // Get, create, or search experience data here
 }
 catch (XdbExecutionException ex)
 {
 // Handle exceptions
 }
 }
 }
 }
}

xConnectのエンドポイントは \\App\_Config\\ConnectionStrings.configファイル内で設定されます。開発者環境では、CollectionとSearchはxdb.collectionという単一のエンドポイントを共有しています。

xConnect Client APIはSitecore外でも使用可能です。以下の例は、コンソールアプリケーションからxConnect Client APIを使用する方法を示しています:

using Sitecore.XConnect;
using Sitecore.XConnect.Client;
using Sitecore.XConnect.Schema;
using System;
using System.Threading.Tasks;
using Sitecore.XConnect.Client.WebApi;
using Sitecore.Xdb.Common.Web;
using Sitecore.XConnect.Collection.Model;
using System.Collections.Generic;
using Sitecore.Xdb.Common.Web;

namespace Documentation
{
 public class Program
 {
 private static void Main(string args)
 {
 MainAsync(args).ConfigureAwait(false).GetAwaiter().GetResult();
 }

 private static async Task MainAsync(string args)
 {
 CertificateHttpClientHandlerModifierOptions options =
 CertificateHttpClientHandlerModifierOptions.Parse("StoreName=My;StoreLocation=LocalMachine;FindType=FindByThumbprint;FindValue=15E6693B0AECB63DE57D991EC363CA462DC52432");

 var certificateModifier = new CertificateHttpClientHandlerModifier(options);

 List<IHttpClientModifier> clientModifiers = new List<IHttpClientModifier>();
 var timeoutClientModifier = new TimeoutHttpClientModifier(new TimeSpan(0, 0, 20));
 clientModifiers.Add(timeoutClientModifier);

 var collectionClient = new CollectionWebApiClient(new Uri("https://xconnect/odata"), clientModifiers, new { certificateModifier });
 var searchClient = new SearchWebApiClient(new Uri("https://xconnect/odata"), clientModifiers, new { certificateModifier });
 var configurationClient = new ConfigurationWebApiClient(new Uri("https://xconnect/configuration"), clientModifiers, new { certificateModifier });

 var cfg = new XConnectClientConfiguration(
 new XdbRuntimeModel(CollectionModel.Model), collectionClient, searchClient, configurationClient);

 try
 {
 await cfg.InitializeAsync();

 }
 catch (XdbModelConflictException ce)
 {
 Console.WriteLine("ERROR:" + ce.Message);
 return;
 }

 using (var client = new XConnectClient(cfg))
 {
 }
 }
 }
}

## xConnectの拡張

開発者として、xConnectを以下の方法で拡張できます:

-   [コレクションモデルを拡張](https://doc.sitecore.com/xp/ja/developers/93/sitecore-experience-platform/create-a-custom-model.html "Create a custom model")する方法は以下の通りです:
    -   [接触や相互作用の側面の追加](https://doc.sitecore.com/xp/ja/developers/93/sitecore-experience-platform/create-a-custom-facet.html "Create a custom facet")
    -   [カスタムイベントの追加](https://doc.sitecore.com/xp/ja/developers/93/sitecore-experience-platform/events.html "Events")
-   [計算された面マージハンドラ](https://doc.sitecore.com/xp/ja/developers/93/sitecore-experience-platform/create-a-calculated-facet.html "Create a calculated facet")などのサービスプラグインを追加