識別子を追加する

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

連絡先識別子は、外部システムに対して連絡先を一意に識別し、新規または既存の連絡先に追加できます。新しい識別子は、バッチが正常に送信されるとすぐに、コンタクトのIdentifiersコレクションで使用できるようになります。

新しい連絡先に識別子を追加する

次の例では、既知の識別子と匿名の識別子が新しい連絡先に追加されます。識別子をContactコンストラクターに渡すか、.AddContactIdentifier() メソッドを使用できます。

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

namespace Documentation
{
    public class GetContactIdentifiers
    {
        public async void ExampleAsync()
        {
            using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient())
            {
                try
                {
                    var contact = new Sitecore.XConnect.Contact(
                        new Sitecore.XConnect.ContactIdentifier("twitter", "myrtlesitecore", Sitecore.XConnect.ContactIdentifierType.Known)
                        );
                    client.AddContact(contact);
                    client.AddContactIdentifier(contact, new Sitecore.XConnect.ContactIdentifier("ad-network", "ABC123456", Sitecore.XConnect.ContactIdentifierType.Anonymous));
                 
               await client.SubmitAsync();
                }
                catch (XdbExecutionException ex)
                {
                    // Manage exception
                }
            }
        }

        public void Example()
        {
            using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient())
            {
                try
                {
                    var contact = new Sitecore.XConnect.Contact(
                        new Sitecore.XConnect.ContactIdentifier("twitter", "myrtlesitecore", Sitecore.XConnect.ContactIdentifierType.Known)
                        );
                    client.AddContact(contact);
                    client.AddContactIdentifier(contact, new Sitecore.XConnect.ContactIdentifier("ad-network", "ABC123456", Sitecore.XConnect.ContactIdentifierType.Anonymous));

                    client.Submit();
                }
                catch (XdbExecutionException ex)
                {
                    // Manage exception
                }
            }
        }

    }
}
メモ

.AddContactIdentifierメソッドを使用して、新しい連絡先に識別子を追加できます。

既存の連絡先に識別子を追加する

次の例では、.AddContactIdentifier() メソッドを使用して既存の連絡先に識別子を追加します。

using System;
using Sitecore.XConnect;
using Sitecore.XConnect.Client;

namespace Documentation
{
    public class UpdateContact
    {
        // Async example
        public async void ExampleAsync()
        {
            using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient())
            {
                try
                {
                    // Retrieve contact from xConnect first
                    var existingContactTask = client.GetAsync<Sitecore.XConnect.Contact>(new Sitecore.XConnect.IdentifiedContactReference("twitter", "myrtlesitecore"), new ContactExecutionOptions(new Sitecore.XConnect.ContactExpandOptions("SitecoreSkyFrequentFlyerInfo")));

                    Sitecore.XConnect.Contact existingContact = await existingContactTask;

                    if (existingContact != null)
                    {
                        client.AddContactIdentifier(existingContact, new Sitecore.XConnect.ContactIdentifier("twitter", "myrtlesitecore", Sitecore.XConnect.ContactIdentifierType.Known));

                        await client.SubmitAsync();
                    }
                }
                catch (Exception ex)
                {
                    // Handle exceptions
                }

            }
        }

        // Sync
        public void Example()
        {
            using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient())
            {
                try
                {
                    // Retrieve contact from xConnect first
                    Contact existingContact = client.Get<Sitecore.XConnect.Contact>(new Sitecore.XConnect.IdentifiedContactReference("twitter", "myrtlesitecore"), new ContactExecutionOptions(new Sitecore.XConnect.ContactExpandOptions("SitecoreSkyFrequentFlyerInfo")));

                    if (existingContact != null)
                    {
                        client.AddContactIdentifier(existingContact, new Sitecore.XConnect.ContactIdentifier("twitter", "myrtlesitecore", Sitecore.XConnect.ContactIdentifierType.Known));

                        client.Submit();
                    }
                }
                catch (Exception ex)
                {
                    // Handle exceptions
                }

            }
        }
    }
}

連絡先識別子の更新

既存の連絡先識別子は更新できません。識別子は削除と追加のみが可能です。次の例では、既存の識別子を .RemoveContactIdentifier() 拡張機能を使用して削除しています。

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

namespace Documentation
{
    public class RemoveContactIdentifier
    {
        // 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<Contact> contactTask = client.GetAsync<Sitecore.XConnect.Contact>(reference, new ContactExecutionOptions(new Sitecore.XConnect.ContactExpandOptions() { }));

                    Sitecore.XConnect.Contact contact = await contactTask;

                    var identifierToRemove = contact.Identifiers.FirstOrDefault(x => x.Identifier == "sitecoremyrtle");

                    client.RemoveContactIdentifier(contact, identifierToRemove);

                    await client.SubmitAsync();
                }
                catch (XdbExecutionException ex)
                {
                    // Manage exception
                }
            }
        }

        // Sync example
        public void ExampleSync()
        {
            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<Sitecore.XConnect.Contact>(reference, new ContactExecutionOptions(new Sitecore.XConnect.ContactExpandOptions() { }));

                    var identifierToRemove = contact.Identifiers.FirstOrDefault(x => x.Identifier == "sitecoremyrtle");

                    client.RemoveContactIdentifier(contact, identifierToRemove);

                    client.Submit();
                }
                catch (XdbExecutionException ex)
                {
                    // Manage exception
                }
            }
        }
    }
}
この記事を改善するための提案がある場合は、 お知らせください!