---
title: "コンタクトを手に入れましょう"
slug: "get-contacts"
abstract: "クライアントを使って連絡先を取得する方法。Get()またはクライアント。IDや識別子を使ったGetAsyncメソッド。"
---
# コンタクトを手に入れましょう

client.Get<Contact>()またはclient.GetAsync<Contact>の方法を使って、IDまたは識別子で取得できます。単一の連絡先や複数の連絡先を取得できます。

## IDで連絡先を取得

以下の例は、IDで単一の連絡先を取得する方法を示しています:

using Sitecore.XConnect.Operations;
using System;
using System.Threading.Tasks;
using Sitecore.XConnect;
using Sitecore.XConnect.Client;

namespace Documentation
{
 public class GetContact
 {
 // Async example
 public async void ExampleAsync()
 {
 using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient())
 {
 try
 {
 var reference = new Sitecore.XConnect.ContactReference(Guid.Parse("B9814105-1F45-E611-82E6-34E6D7117DCB"));

 Task<Sitecore.XConnect.Contact> contactTask = client.GetAsync<Sitecore.XConnect.Contact>(reference, new Sitecore.XConnect.ContactExpandOptions() { });

 Contact contact = await contactTask;
 }
 catch (XdbExecutionException ex)
 {
 // Manage exceptions
 }
 }
 }

 // Sync example
 public void Example()
 {
 using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient())
 {
 try
 {
 var reference = new Sitecore.XConnect.ContactReference(Guid.Parse("B9814105-1F45-E611-82E6-34E6D7117DCB"));

 Contact contact = client.Get<Contact>(reference, new Sitecore.XConnect.ContactExpandOptions() { });
 }
 catch (XdbExecutionException ex)
 {
 // Manage exceptions
 }
 }
 }
 }
}

## 識別子による連絡先取得

[以下の例は識別子による連絡先取得方法を示しています。既知の識別子と匿名識別子の両方に対して同じ方法を用いてください。識別子の詳細については「連絡先概要」トピックを参照してください](https://doc.sitecore.com/xp/ja/developers/91/sitecore-experience-platform/contacts.html "Contacts")

> !注出典と識別子はどちらも大文字を区別しています。

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

namespace Documentation
{
 public class GetContactByIdentifier
 {
 // Async example
 public async void ExampleAsync()
 {
 using (XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient())
 {
 try
 {
 var reference = new IdentifiedContactReference("twitter", "myrtlesitecore");

 Task<Contact> contactTask = client.GetAsync<Contact>(reference, new ContactExpandOptions() { });

 Contact contact = await contactTask;
 }
 catch (XdbExecutionException ex)
 {
 // Manage exceptions
 }
 }
 }

 // Sync example
 public void Example()
 {
 using (XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient())
 {
 try
 {
 var reference = new IdentifiedContactReference("twitter", "myrtlesitecore");

 Contact contact = client.Get<Contact>(reference, new ContactExpandOptions() { });
 }
 catch (XdbExecutionException ex)
 {
 // Manage exceptions
 }
 }
 }
 }
}

### 別名識別子で連絡先を取得する

すべての連絡先は、GUIDとSitecore.XConnect.Constants.AliasIdentifierSourceによって定義されたソースからなる[エイリアス識別子](https://doc.sitecore.com/xp/ja/developers/91/sitecore-experience-platform/contacts.html "Contacts")を持っています。

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

namespace Documentation
{
 public class GetContactByAliasIdentifier
 {
 // Async example
 public async void ExampleAsync()
 {
 using (XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient())
 {
 try
 {
 var reference = new IdentifiedContactReference(Sitecore.XConnect.Constants.AliasIdentifierSource, "1c59d6f4-1ea6-4219-887b-d8f5a0b8104a");

 Task<Contact> contactTask = client.GetAsync<Contact>(reference, new ContactExpandOptions() { });

 Contact contact = await contactTask;
 }
 catch (XdbExecutionException ex)
 {
 // Manage exceptions
 }
 }
 }

 // Sync example
 public void Example()
 {
 using (XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient())
 {
 try
 {
 var reference = new IdentifiedContactReference(Sitecore.XConnect.Constants.AliasIdentifierSource, "1c59d6f4-1ea6-4219-887b-d8f5a0b8104a");

 Contact contact = client.Get<Contact>(reference, new ContactExpandOptions() { });
 }
 catch (XdbExecutionException ex)
 {
 // Manage exceptions
 }
 }
 }
 }
}

> !ヒントContactクラスの.GetAlias()拡張を使って連絡先のエイリアス識別子を取得します。

## 複数の連絡先を取る

.GetAsync<Contact>()および.Get<Contact>()メソッドを用いて、複数の接点を参照配列を渡すことで複数の接点を取得することができます。接点は単一のバッチとして返されます。以下の例で示すように、IDと識別子の混合を使って接点を取得することが可能です。

using Sitecore.XConnect.Operations;
using System;
using System.Collections.Generic;
using Sitecore.XConnect;
using Sitecore.XConnect.Client.Configuration;
using Sitecore.XConnect.Client;

namespace Documentation
{
 public class GetMultipleContacts
 {
 // Async example
 public async void AsyncExample()
 {
 using (XConnectClient client = SitecoreXConnectClientConfiguration.GetClient())
 {
 try
 {
 var references = new List<IEntityReference<Contact>>()
 {
 // Contact ID
 new ContactReference(new Guid("{A2814105-1F45-E611-52E6-34E6D7117DCB}")),
 // Known identifier
 new IdentifiedContactReference("twitter", "myrtlesitecore"),
 // Anonymous identifier
 new IdentifiedContactReference("adnetwork", "AB973934540244")
 };

 var contactsTask = client.GetAsync<Contact>(references, new ContactExpandOptions() { });

 IReadOnlyCollection<IEntityLookupResult<Contact>> contactsResult = await contactsTask;

 foreach (var result in contactsResult)
 {
 if (result.Exists)
 {
 Contact contact = result.Entity;
 }
 }

 }
 catch (XdbExecutionException ex)
 {
 // Manage exceptions
 }
 }
 }

 // Sync example
 public void Example()
 {
 using (XConnectClient client = SitecoreXConnectClientConfiguration.GetClient())
 {
 try
 {
 var references = new List<IEntityReference<Contact>>()
 {
 // Contact ID
 new ContactReference(new Guid("{A2814105-1F45-E611-52E6-34E6D7117DCB}")),
 // Known identifier
 new IdentifiedContactReference("twitter", "myrtlesitecore"),
 // Anonymous identifier
 new IdentifiedContactReference("adnetwork", "AB973934540244")
 };

 IReadOnlyCollection<IEntityLookupResult<Contact>> contacts = client.Get<Contact>(references, new ContactExpandOptions() { });

 foreach (var result in contacts)
 {
 if (result.Exists)
 {
 Contact contact = result.Entity;
 }
 }

 }
 catch (XdbExecutionException ex)
 {
 // Manage exceptions
 }
 }
 }
 }
}

xConnectは、接点が見つからなくても各操作ごとにIEntityLookupResult<Contact> を返します。接点が存在する場合、Existsプロパティはtrueに設定され、Entityプロパティから接触にアクセスできます。接点が存在するが取得できない場合は、Exceptionプロパティを詳細に確認してください。

> !notexConnectは、複数の連絡先参照が同じ連絡先を参照している場合、リストを統合しません。その連絡先は複数回返されます。

## 連絡先や関連するやり取りを得ましょう

デフォルトでは、接触はファセットや関連する相互作用なしで返されます。展開オプションを使って、どのファセスやどの範囲の関連するインタラクションを返すべきかを判断してください。

-   [連絡先の側面を入手してください](https://doc.sitecore.com/xp/ja/developers/91/sitecore-experience-platform/get-contact-with-facets.html "Get contact with facets")
-   [連絡先の交流を得てください](https://doc.sitecore.com/xp/ja/developers/91/sitecore-experience-platform/get-contact-with-interactions.html "Get contact with interactions")