非Sitecoreコンテキストでクライアントをインスタンス化する
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
!重要コンテナベース環境では、xConnect APIは公開されません。
xConnect Client APIは移植可能であり、Sitecore以外の文脈でも使用できます。以下の例は、コンソールアプリケーションからクライアントをインスタンス化する方法を示しています。
!重要正しいクライアント証明書を持つ信頼できるクライアントのみがxConnectと通信できます。モバイルアプリケーションからxConnectに書き込みたい場合は、アプリケーションからデータを収集し、そのデータを定期的にxConnectに送信する中間サーバーを設置する必要があります。モバイルデバイスから直接xConnectに書き込みすることはできません。
!重要XConnectConfigurationオブジェクトを複数回初期化してはならず、不要なリソース消費や潜在的な競合を避けてください。
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;
namespace Symposium.xConnect.Course { public class Program { private static void Main(string args) { MainAsync(args).ConfigureAwait(false).GetAwaiter().GetResult(); }
private static async Task MainAsync(string args) { try { // Use the singleton configuration instance var cfg = XConnectConfiguration.Instance;
using (var client = new XConnectClient(cfg)) { // Use the client here } } catch (XdbModelConflictException ce) { Console.WriteLine("ERROR:" + ce.Message); return; } } }
// Singleton class for XConnectClientConfiguration
public static class XConnectConfiguration
{
private static readonly Lazy
public static XConnectClientConfiguration Instance => _instance.Value;
private static XConnectClientConfiguration InitializeConfiguration() { CertificateHttpClientHandlerModifierOptions options = CertificateHttpClientHandlerModifierOptions.Parse("StoreName=My;StoreLocation=LocalMachine;FindType=FindByThumbprint;FindValue=15E6693B0AECB63DE57D991EC363CA462DC52432");
var certificateModifier = new CertificateHttpClientHandlerModifier(options);
List
var collectionClient = new CollectionWebApiClient(new Uri("https://sc900rev170622\_xconnect/odata"), clientModifiers, new { certificateModifier }); var searchClient = new SearchWebApiClient(new Uri("https://sc900rev170622\_xconnect/odata"), clientModifiers, new { certificateModifier }); var configurationClient = new ConfigurationWebApiClient(new Uri("https://sc900rev170622\_xconnect/configuration"), clientModifiers, new { certificateModifier });
var cfg = new XConnectClientConfiguration( new XdbRuntimeModel(CollectionModel.Model), collectionClient, searchClient, configurationClient);
// Initialize the configuration synchronously for simplicity cfg.InitializeAsync().GetAwaiter().GetResult();
return cfg; } } }
カスタムモデルの使用
Sitecoreコンテキストでは、xConnectクライアントAPI構成可能なすべてのモデルから組み立てられたランタイムモデルを使用します。非Sitecoreコンテキストでは、扱いたいモデルをXConnectClientConfigurationに渡さなければなりません:
var cfg = new XConnectClientConfiguration( new XdbRuntimeModel(Custom.Namespace.Model), collectionClient, searchClient, configurationClient);
!ヒントXdbRuntimeModelオブジェクトを複数のモデルでインスタンス化できます。