2

EXM によって作成された URL の ec_contact_id から生の連絡先 ID を取得するにはどうすればよいですか?

Sitecore の EXM を使用して、調査のリンクを含む電子メールを受信者に送信しています。受信者がアンケートに回答したら、回答を受信者に結び付けたいと考えています。EXM は連絡先 (暗号化された) に一意の ID、ec_contact_id を設定するため、独自のカスタム ID を追加するのではなく、それを使用して受信者を決定します。

https://briancaos.wordpress.com/2015/04/27/sitecore-8-exm-get-the-email-recipient-from-a-sublayout/という記事を見つけ、Sitecore コントローラーに実装してみました。受信者がリンクをクリックすると呼び出されますが、結果の受信者名は空として返されます。「sc_item_id」値がないため、代わりに「_id」と「ec_message_id」を試しましたが、どちらの値も有効な連絡先 ID または受信者名を生成しませんでした。また、復号化された contactId を使用して MongoDB を調べてみましたが、一致するものは見つかりませんでした。

4

2 に答える 2

1

次のようなことを試すことができます:

//get value of the ec_contact_id parameter for current request
string queryString = WebUtil.GetQueryString( Sitecore.Modules.EmailCampaign.GlobalSettings.AnalyticsContactIdQueryKey); 

var shortID =  ShortID.TryParse(queryString, out shortID);

System.Guid contactId;

// where initializationVector is System.Guid of your email message item.
using (var cryptoServiceProvider = new GuidCryptoServiceProvider(System.Text.Encoding.UTF8.GetBytes(GlobalSettings.PrivateKey), initializationVector.ToByteArray())) 
{
       contactId = cryptoServiceProvider.Decrypt(shortID.Guid);
}
于 2016-04-27T14:18:53.313 に答える