コード例 #1
0
        static void Test_AddSubscriberToList()
        {
            string NewListName         = "CSharpSDKAddSubscriberToList";
            string SubscriberTestEmail = "*****@*****.**";

            Console.WriteLine("--- Testing AddSubscriberToList ---");
            ET_Client myclient = new ET_Client();

            Console.WriteLine("\n Create List");
            ET_List postList = new ET_List();

            postList.AuthStub = myclient;
            postList.ListName = NewListName;
            PostReturn prList = postList.Post();

            if (prList.Status && prList.Results.Length > 0)
            {
                int newListID = prList.Results[0].Object.ID;

                Console.WriteLine("\n Create Subscriber on List");
                FuelReturn hrAddSub = myclient.AddSubscribersToList(SubscriberTestEmail, new List <int>()
                {
                    newListID
                });
                Console.WriteLine("Helper Status: " + hrAddSub.Status.ToString());
                Console.WriteLine("Message: " + hrAddSub.Message.ToString());
                Console.WriteLine("Code: " + hrAddSub.Code.ToString());

                Console.WriteLine("\n Retrieve all Subscribers on the List");
                ET_List_Subscriber getListSub = new ET_List_Subscriber();
                getListSub.AuthStub     = myclient;
                getListSub.Props        = new string[] { "ObjectID", "SubscriberKey", "CreatedDate", "Client.ID", "Client.PartnerClientKey", "ListID", "Status" };
                getListSub.SearchFilter = new SimpleFilterPart()
                {
                    Property = "ListID", SimpleOperator = SimpleOperators.equals, Value = new string[] { newListID.ToString() }
                };
                GetReturn getResponse = getListSub.Get();
                Console.WriteLine("Get Status: " + getResponse.Status.ToString());
                Console.WriteLine("Message: " + getResponse.Message.ToString());
                Console.WriteLine("Code: " + getResponse.Code.ToString());
                Console.WriteLine("Results Length: " + getResponse.Results.Length);
                foreach (ET_List_Subscriber ResultListSub in getResponse.Results)
                {
                    Console.WriteLine("--ListID: " + ResultListSub.ListID + ", SubscriberKey(EmailAddress): " + ResultListSub.SubscriberKey);
                }

                Console.WriteLine("\n Delete List");
                postList.ID = newListID;
                DeleteReturn drList = postList.Delete();
                Console.WriteLine("Delete Status: " + drList.Status.ToString());
            }
        }
コード例 #2
0
        static void TestET_ListSubscriber()
        {
            var newListName         = "CSharpSDKListSubscriber";
            var subscriberTestEmail = "*****@*****.**";

            Console.WriteLine("--- Testing ListSubscriber ---");
            var myclient = new ET_Client();

            Console.WriteLine("\n Create List");
            var postList = new ET_List
            {
                AuthStub = myclient,
                ListName = newListName,
            };
            var prList = postList.Post();

            if (prList.Status && prList.Results.Length > 0)
            {
                var newListID = prList.Results[0].Object.ID;

                Console.WriteLine("\n Create Subscriber on List");
                var postSub = new ET_Subscriber
                {
                    Lists = new[] { new ET_SubscriberList {
                                        ID = newListID
                                    } },
                    AuthStub     = myclient,
                    EmailAddress = subscriberTestEmail,
                    Attributes   = new[] { new ET_ProfileAttribute {
                                               Name = "First Name", Value = "ExactTarget Example"
                                           } },
                };
                var postResponse = postSub.Post();
                Console.WriteLine("Post Status: " + postResponse.Status.ToString());
                Console.WriteLine("Message: " + postResponse.Message);
                Console.WriteLine("Code: " + postResponse.Code.ToString());
                Console.WriteLine("Results Length: " + postResponse.Results.Length);

                if (!postResponse.Status)
                {
                    if (postResponse.Results.Length > 0 && postResponse.Results[0].ErrorCode == 12014)
                    {
                        // If the subscriber already exists in the account then we need to do an update.
                        // Update Subscriber On List
                        Console.WriteLine("\n Update Subscriber to add to List");
                        PatchReturn patchResponse = postSub.Patch();
                        Console.WriteLine("Post Status: " + patchResponse.Status.ToString());
                        Console.WriteLine("Message: " + patchResponse.Message);
                        Console.WriteLine("Code: " + patchResponse.Code.ToString());
                        Console.WriteLine("Results Length: " + patchResponse.Results.Length);
                    }
                }

                Console.WriteLine("\n Retrieve all Subscribers on the List");
                var getListSub = new ET_List_Subscriber
                {
                    AuthStub     = myclient,
                    Props        = new[] { "ObjectID", "SubscriberKey", "CreatedDate", "Client.ID", "Client.PartnerClientKey", "ListID", "Status" },
                    SearchFilter = new SimpleFilterPart {
                        Property = "ListID", SimpleOperator = SimpleOperators.equals, Value = new[] { newListID.ToString() }
                    },
                };
                var getResponse = getListSub.Get();
                Console.WriteLine("Get Status: " + getResponse.Status.ToString());
                Console.WriteLine("Message: " + getResponse.Message);
                Console.WriteLine("Code: " + getResponse.Code.ToString());
                Console.WriteLine("Results Length: " + getResponse.Results.Length);
                foreach (ET_List_Subscriber resultListSub in getResponse.Results)
                {
                    Console.WriteLine("--ListID: " + resultListSub.ID + ", SubscriberKey(EmailAddress): " + resultListSub.SubscriberKey);
                }
            }

#if false
            var filterDate = new DateTime(2013, 1, 15, 13, 0, 0);

            Console.WriteLine("Retrieve Filtered ListSubscribers with GetMoreResults");
            var oe2 = new ET_List_Subscriber
            {
                AuthStub     = myclient,
                SearchFilter = new SimpleFilterPart {
                    Property = "EventDate", SimpleOperator = SimpleOperators.greaterThan, DateValue = new [] { filterDate }
                },
                Props = new [] { "ObjectID", "SubscriberKey", "CreatedDate", "Client.ID", "Client.PartnerClientKey", "ListID", "Status" },
            };
            var oeGet = oe2.Get();

            Console.WriteLine("Get Status: " + oeGet.Status.ToString());
            Console.WriteLine("Message: " + oeGet.Message);
            Console.WriteLine("Code: " + oeGet.Code.ToString());
            Console.WriteLine("Results Length: " + oeGet.Results.Length);
            Console.WriteLine("MoreResults: " + oeGet.MoreResults.ToString());
            // Since this could potentially return a large number of results, we do not want to print the results
            //foreach (ET_ListSubscriber ListSubscriber in oeGet.Results)
            //    Console.WriteLine("SubscriberKey: " + ListSubscriber.SubscriberKey + ", EventDate: " + ListSubscriber.EventDate.ToString());

            while (oeGet.MoreResults)
            {
                Console.WriteLine("Continue Retrieve Filtered ListSubscribers with GetMoreResults");
                oeGet = oe2.GetMoreResults();
                Console.WriteLine("Get Status: " + oeGet.Status.ToString());
                Console.WriteLine("Message: " + oeGet.Message);
                Console.WriteLine("Code: " + oeGet.Code.ToString());
                Console.WriteLine("Results Length: " + oeGet.Results.Length);
                Console.WriteLine("MoreResults: " + oeGet.MoreResults.ToString());
            }

            // The following request could potentially bring back large amounts of data if run against a production account
            Console.WriteLine("Retrieve All ListSubscribers with GetMoreResults");
            var oe3 = new ET_List_Subscriber
            {
                AuthStub = myclient,
                Props    = new string[] { "SendID", "SubscriberKey", "EventDate", "Client.ID", "EventType", "BatchID", "TriggeredSendDefinitionObjectID", "PartnerKey" },
            };
            var oeGetAll = oe3.Get();

            Console.WriteLine("Get Status: " + oeGetAll.Status.ToString());
            Console.WriteLine("Message: " + oeGetAll.Message);
            Console.WriteLine("Code: " + oeGetAll.Code.ToString());
            Console.WriteLine("Results Length: " + oeGetAll.Results.Length);
            Console.WriteLine("MoreResults: " + oeGetAll.MoreResults.ToString());
            // Since this could potentially return a large number of results, we do not want to print the results
            foreach (ET_List_Subscriber ListSubscriber in oeGetAll.Results)
            {
                Console.WriteLine("SubscriberKey: " + ListSubscriber.SubscriberKey + ", EventDate: " + ListSubscriber.EventDate.ToString());
            }

            while (oeGetAll.MoreResults)
            {
                oeGetAll = oe3.GetMoreResults();
                Console.WriteLine("Get Status: " + oeGetAll.Status.ToString());
                Console.WriteLine("Message: " + oeGetAll.Message);
                Console.WriteLine("Code: " + oeGetAll.Code.ToString());
                Console.WriteLine("Results Length: " + oeGetAll.Results.Length);
                Console.WriteLine("MoreResults: " + oeGetAll.MoreResults.ToString());
            }
#endif
        }
コード例 #3
0
ファイル: EmailJob.cs プロジェクト: beiyiz/GA
        private void RetrieveSubscribers()
        {
            List <int> lstListIDs = new List <int>();

            lstListIDs.Add(17942355);
            lstListIDs.Add(17942350);
            lstListIDs.Add(17942353);
            lstListIDs.Add(17942356);
            lstListIDs.Add(17942359);
            lstListIDs.Add(17942361);

            dtSubscribers = new DataTable();
            dtSubscribers.Columns.Add("SubscriberID");
            dtSubscribers.Columns.Add("EmailAddress");
            dtSubscribers.Columns.Add("ListID");
            dtSubscribers.Columns.Add("DateAdded");
            dtSubscribers.Columns.Add("DateModified");

            NameValueCollection parameters = new NameValueCollection();

            parameters.Add("clientId", "3uqagf2nrt2mm27q3rt45ett");
            parameters.Add("clientSecret", "D5wxtEx6UGNVxgkbyrruJhQV");

            ET_Client myclient = new ET_Client(parameters);
            ET_List   postList = new ET_List();


            postList.AuthStub = myclient;
            PostReturn prList = postList.Post();

            if (prList.Status && prList.Results.Length > 0)
            {
                ET_List_Subscriber getListSub = new ET_List_Subscriber();
                getListSub.AuthStub = myclient;
                //getListSub.Props = new string[] { "ObjectID", "SubscriberKey", "CreatedDate", "Client.ID", "Client.PartnerClientKey", "ListID", "Status" };
                //getListSub.SearchFilter = new SimpleFilterPart() { Property = "ListID", SimpleOperator = SimpleOperators.equals, Value = new string[] { newListID.ToString() } };
                GetReturn getResponse = getListSub.Get();
                foreach (int newListID in lstListIDs)
                {
                    try
                    {
                        getListSub.SearchFilter = new SimpleFilterPart()
                        {
                            Property = "ListID", SimpleOperator = SimpleOperators.equals, Value = new string[] { newListID.ToString() }
                        };
                        GetReturn response = getListSub.Get();
                        foreach (ET_List_Subscriber subscriber in response.Results)
                        {
                            try
                            {
                                DataRow dr = dtSubscribers.NewRow();
                                dr["SubscriberID"] = subscriber.ID.ToString();
                                dr["ListID"]       = subscriber.ListID.ToString();
                                dr["EmailAddress"] = subscriber.SubscriberKey.ToString();
                                dr["DateAdded"]    = subscriber.CreatedDate.ToString();
                                dr["DateModified"] = subscriber.ModifiedDate.ToString();
                                dtSubscribers.Rows.Add(dr);
                            }
                            catch (Exception)
                            {
                            }
                        }
                    }
                    catch (Exception)
                    {
                    }
                }
            }

            if (dtSubscribers.Rows.Count > 0)
            {
                //Save All Subscribers to the database
                foreach (DataRow scribe in dtSubscribers.Rows)
                {
                    try
                    {
                        string spName           = "dbo.AddETSubscriber";
                        String ConnectionString = Sitecore.Configuration.Settings.GetConnectionString("custom");
                        if (!String.IsNullOrWhiteSpace(ConnectionString))
                        {
                            using (SqlConnection connection = new SqlConnection(ConnectionString))
                            {
                                using (SqlCommand command = new SqlCommand(spName, connection))
                                {
                                    command.CommandType = CommandType.StoredProcedure;
                                    connection.Open();

                                    command.Parameters.Add(new SqlParameter("@SubscriberID", scribe["SubscriberID"].ToString()));
                                    command.Parameters.Add(new SqlParameter("@ListID", scribe["ListID"].ToString()));
                                    command.Parameters.Add(new SqlParameter("@EmailAddress", scribe["EmailAddress"].ToString()));
                                    command.Parameters.Add(new SqlParameter("@DateSubscriptionAdded", scribe["DateAdded"].ToString()));
                                    command.Parameters.Add(new SqlParameter("@DateSubscriptionUpdated", scribe["DateModified"].ToString()));
                                    command.ExecuteNonQuery();
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                    }
                }
            }
        }
コード例 #4
0
        static void TestET_ListSubscriber()
        {
            string NewListName         = "CSharpSDKListSubscriber";
            string SubscriberTestEmail = "*****@*****.**";

            Console.WriteLine("--- Testing ListSubscriber ---");
            ET_Client myclient = new ET_Client();

            Console.WriteLine("\n Create List");
            ET_List postList = new ET_List();

            postList.AuthStub = myclient;
            postList.ListName = NewListName;
            PostReturn prList = postList.Post();

            if (prList.Status && prList.Results.Length > 0)
            {
                int newListID = prList.Results[0].Object.ID;

                Console.WriteLine("\n Create Subscriber on List");
                ET_Subscriber postSub = new ET_Subscriber();
                postSub.Lists = new ET_SubscriberList[] { new ET_SubscriberList()
                                                          {
                                                              ID = newListID
                                                          } };
                postSub.AuthStub     = myclient;
                postSub.EmailAddress = SubscriberTestEmail;
                postSub.Attributes   = new FuelSDK.ET_ProfileAttribute[] { new ET_ProfileAttribute()
                                                                           {
                                                                               Name = "First Name", Value = "ExactTarget Example"
                                                                           } };
                PostReturn postResponse = postSub.Post();
                Console.WriteLine("Post Status: " + postResponse.Status.ToString());
                Console.WriteLine("Message: " + postResponse.Message.ToString());
                Console.WriteLine("Code: " + postResponse.Code.ToString());
                Console.WriteLine("Results Length: " + postResponse.Results.Length);


                if (!postResponse.Status)
                {
                    if (postResponse.Results.Length > 0 && postResponse.Results[0].ErrorCode == 12014)
                    {
                        // If the subscriber already exists in the account then we need to do an update.
                        //Update Subscriber On List
                        Console.WriteLine("\n Update Subscriber to add to List");
                        PatchReturn patchResponse = postSub.Patch();
                        Console.WriteLine("Post Status: " + patchResponse.Status.ToString());
                        Console.WriteLine("Message: " + patchResponse.Message.ToString());
                        Console.WriteLine("Code: " + patchResponse.Code.ToString());
                        Console.WriteLine("Results Length: " + patchResponse.Results.Length);
                    }
                }

                Console.WriteLine("\n Retrieve all Subscribers on the List");
                ET_List_Subscriber getListSub = new ET_List_Subscriber();
                getListSub.AuthStub     = myclient;
                getListSub.Props        = new string[] { "ObjectID", "SubscriberKey", "CreatedDate", "Client.ID", "Client.PartnerClientKey", "ListID", "Status" };
                getListSub.SearchFilter = new SimpleFilterPart()
                {
                    Property = "ListID", SimpleOperator = SimpleOperators.equals, Value = new string[] { newListID.ToString() }
                };
                GetReturn getResponse = getListSub.Get();
                Console.WriteLine("Get Status: " + getResponse.Status.ToString());
                Console.WriteLine("Message: " + getResponse.Message.ToString());
                Console.WriteLine("Code: " + getResponse.Code.ToString());
                Console.WriteLine("Results Length: " + getResponse.Results.Length);
                foreach (ET_List_Subscriber ResultListSub in getResponse.Results)
                {
                    Console.WriteLine("--ListID: " + ResultListSub.ID + ", SubscriberKey(EmailAddress): " + ResultListSub.SubscriberKey);
                }
            }


            //Console.WriteLine("Retrieve Filtered ListSubscribers with GetMoreResults");
            //ET_ListSubscriber oe = new ET_ListSubscriber();
            //oe.authStub = myclient;
            //oe.SearchFilter = new SimpleFilterPart() { Property = "EventDate", SimpleOperator = SimpleOperators.greaterThan, DateValue = new DateTime[] { filterDate } };
            //oe.props = new string[] { "ObjectID", "SubscriberKey", "CreatedDate", "Client.ID", "Client.PartnerClientKey", "ListID", "Status" };
            //GetReturn oeGet = oe.Get();

            //Console.WriteLine("Get Status: " + oeGet.Status.ToString());
            //Console.WriteLine("Message: " + oeGet.Message.ToString());
            //Console.WriteLine("Code: " + oeGet.Code.ToString());
            //Console.WriteLine("Results Length: " + oeGet.Results.Length);
            //Console.WriteLine("MoreResults: " + oeGet.MoreResults.ToString());
            //// Since this could potentially return a large number of results, we do not want to print the results
            ////foreach (ET_ListSubscriber ListSubscriber in oeGet.Results)
            ////{
            ////    Console.WriteLine("SubscriberKey: " + ListSubscriber.SubscriberKey + ", EventDate: " + ListSubscriber.EventDate.ToString());
            ////}

            //while (oeGet.MoreResults)
            //{
            //    Console.WriteLine("Continue Retrieve Filtered ListSubscribers with GetMoreResults");
            //    oeGet = oe.GetMoreResults();
            //    Console.WriteLine("Get Status: " + oeGet.Status.ToString());
            //    Console.WriteLine("Message: " + oeGet.Message.ToString());
            //    Console.WriteLine("Code: " + oeGet.Code.ToString());
            //    Console.WriteLine("Results Length: " + oeGet.Results.Length);
            //    Console.WriteLine("MoreResults: " + oeGet.MoreResults.ToString());
            //}


            //The following request could potentially bring back large amounts of data if run against a production account
            //Console.WriteLine("Retrieve All ListSubscribers with GetMoreResults");
            //ET_ListSubscriber oe = new ET_ListSubscriber();
            //oe.authStub = myclient;
            //oe.props = new string[] { "SendID", "SubscriberKey", "EventDate", "Client.ID", "EventType", "BatchID", "TriggeredSendDefinitionObjectID", "PartnerKey" };
            //GetResponse oeGetAll = oe.Get();

            //Console.WriteLine("Get Status: " + oeGetAll.Status.ToString());
            //Console.WriteLine("Message: " + oeGetAll.Message.ToString());
            //Console.WriteLine("Code: " + oeGetAll.Code.ToString());
            //Console.WriteLine("Results Length: " + oeGetAll.Results.Length);
            //Console.WriteLine("MoreResults: " + oeGetAll.MoreResults.ToString());
            //// Since this could potentially return a large number of results, we do not want to print the results
            ////foreach (ET_ListSubscriber ListSubscriber in oeGet.Results)
            ////{
            ////    Console.WriteLine("SubscriberKey: " + ListSubscriber.SubscriberKey + ", EventDate: " + ListSubscriber.EventDate.ToString());
            ////}

            //while (oeGetAll.MoreResults)
            //{
            //    oeGetAll = oe.GetMoreResults();
            //    Console.WriteLine("Get Status: " + oeGetAll.Status.ToString());
            //    Console.WriteLine("Message: " + oeGetAll.Message.ToString());
            //    Console.WriteLine("Code: " + oeGetAll.Code.ToString());
            //    Console.WriteLine("Results Length: " + oeGetAll.Results.Length);
            //    Console.WriteLine("MoreResults: " + oeGetAll.MoreResults.ToString());
            //}
        }