Exemple #1
0
 void Start()
 {
     updateSUBSCR = GameObject.Find("UpdateSUBSCR").GetComponent <UpdateSubscriber>();
 }
Exemple #2
0
 //Add it self to the List
 void Start()
 {
     updateSUBSCR = GameObject.Find("UpdateSUBSCR").GetComponent <UpdateSubscriber>();
     updateSUBSCR.addManagedUpdateBehavior(this);
 }
        public override async Task ExecuteAsync()
        {
            var accessToken = await GetAccessTokenAsync();

            // Get all the accounts entries
            const string accountsUrl = "https://api.aweber.com/1.0/accounts";
            var accounts = await GetCollectionAsync<Account>(accessToken, accountsUrl);
            var accountUrl = accounts.First().SelfLink;

            // Get all the list entries for the first account
            var listsUrl = accounts.First().ListsCollectionLink;
            var lists = await GetCollectionAsync<List>(accessToken, listsUrl);

            // Find out if a subscriber exists on the first list
            var email = "*****@*****.**";
            var subscriberParams = new Dictionary<string, string>
            {
                {"email", email},
                {"ws.op", "find"}
            };
            var subscribersUrl = lists.First().SubscribersCollectionLink;
            var findUrl = string.Format("{0}?{1}", subscribersUrl, subscriberParams.ToUrlParams());
            var foundSubscribers = await GetCollectionAsync<Subscriber>(accessToken, findUrl);
            Console.WriteJson("Found subscribers", foundSubscribers);

            var subscriber = foundSubscribers.FirstOrDefault();
            string subscriberUrl;
            if (subscriber?.SelfLink != null)
            {
                // update subscriber if they are on the first list
                var updateSubscriber = new UpdateSubscriber
                {
                    CustomFields = new Dictionary<string, string> {{"awesomeness", "really awesome"}},
                    Tags = new Dictionary<string, IList<string>> {{"add", new List<string> {"prospect"}}},
                    Status = "subscribed"
                };
                subscriberUrl = subscriber.SelfLink;
                subscriber = await UpdateAsync<UpdateSubscriber, Subscriber>(updateSubscriber, accessToken, subscriberUrl);
                Console.WriteJson("Updated Subscriber", subscriber);
            }
            else
            {
                // add the subscriber if they are not already on the first list
                var addSubscriber = new AddSubscriber
                {
                    Email = email,
                    CustomFields = new Dictionary<string, string> {{"awesomeness", "somewhat"}},
                    Tags = new List<string> {"prospect"}
                };
                subscriberUrl = (await CreateAsync(addSubscriber, accessToken, subscribersUrl)).AbsoluteUri;
                subscriber = await GetAsync<Subscriber>(accessToken, subscriberUrl);
                Console.WriteJson("Created Subscriber", subscriber);
            }

            // get the activity for the subscriber
            var activityParams = new Dictionary<string, string>
            {
                {"ws.op", "getActivity"}
            };
            var activityUrl = string.Format("{0}?{1}", subscriberUrl, activityParams.ToUrlParams());
            var activity = await GetAsync<Activity>(accessToken, activityUrl);
            Console.WriteJson("Subscriber Activity", activity);

            // delete the subscriber; this can only be performed on confirmed subscribers
            // or a 405 Method Not Allowed will be returned
            if (subscriber.Status == "subscribed")
            {
                await DeleteAsync(accessToken, subscriberUrl);
                Console.WriteResponse(ConsoleColor.Green, "Deleted subscriber with email: {0}", email);
            }
        }