Example #1
0
        public async Task <IUser> Login(enSocialNetwork socialNetwork)
        {
            IUser user = null;

            try
            {
                String vkUrl =
                    String.Format("https://oauth.vk.com/authorize?client_id={0}&scope={1}&response_type=token"
                                  , 5042701, "offline,messages,friends");
                String vkCallBackUrl = String.Format("https://oauth.vk.com/blank.html");

                System.Uri StartUri = new Uri(vkUrl);
                System.Uri EndUri   = new Uri(vkCallBackUrl);

                WebAuthenticationResult response =
                    await WebAuthenticationBroker.AuthenticateAsync(WebAuthenticationOptions.None, StartUri, EndUri);

                if (response.ResponseStatus == WebAuthenticationStatus.Success)
                {
                    user = await GetVkUser(response.ResponseData.ToString());
                }
            }
            catch (Exception ex)
            {
            }

            return(user);
        }
Example #2
0
		public async Task<IUser> Login(enSocialNetwork socialNetwork)
		{
			IUser user = null;
			try
			{
				String vkUrl =
					String.Format("https://oauth.vk.com/authorize?client_id={0}&scope={1}&response_type=token"
					, 5042701, "offline,messages,friends");
				String vkCallBackUrl = String.Format("https://oauth.vk.com/blank.html");

				System.Uri StartUri = new Uri(vkUrl);
				System.Uri EndUri = new Uri(vkCallBackUrl);

				WebAuthenticationResult response = 
					await WebAuthenticationBroker.AuthenticateAsync(WebAuthenticationOptions.None,StartUri,EndUri);

				if (response.ResponseStatus == WebAuthenticationStatus.Success)
				{
					user = await GetVkUser(response.ResponseData.ToString());
				}

			}
			catch (Exception ex)
			{

			}

			return user;
		}
Example #3
0
        public async Task <IUser> GetUserInfoRequest(IUser user, enSocialNetwork enSocialNetwork)
        {
            try
            {
                HttpClient httpClient = new HttpClient();
                string     urlGetUser =
                    String.Format("https://api.vk.com/method/users.get?token={0}&user_ids={1}",
                                  user.SerializeInfo, user.Uid
                                  );

                string response =
                    await httpClient.GetStringAsync(new Uri(urlGetUser));

                string firstName = response.Split('[')[1].Split(',')[1].Split('\"')[3];
                string lastName  = response.Split('[')[1].Split(',')[2].Split('\"')[3];

                return(new User()
                {
                    FirstName = firstName, LastName = lastName, Uid = user.Uid, SerializeInfo = user.SerializeInfo
                });
            }
            catch (Exception ex)
            {
            }
            return(null);
        }
Example #4
0
        public async Task <IUser> Login(enSocialNetwork socialNetwork)
        {
            IUser user = null;

            try
            {
                switch (socialNetwork)
                {
                case enSocialNetwork.VK:
                    user = await LoginToVk();

                    break;

                case enSocialNetwork.Twitter:
                    user = await LoginToTwitter();

                    break;

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
            }

            return(user);
        }
Example #5
0
        public async Task <IDialog> GetDialogWithFriend(DataIUser user, enSocialNetwork socialNetwork, IUser friend)
        {
            IDialog dialog = null;

            try
            {
                switch (socialNetwork)
                {
                case enSocialNetwork.VK:
                    dialog = await GetVkDialogWithFriend(user, friend);

                    break;

                case enSocialNetwork.Twitter:
                    dialog = await GetTwitterDialogWithFriend(user, friend);

                    break;

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
            }

            this.StopRequest();

            return(dialog);
        }
Example #6
0
        public async Task <IEnumerable <IDialog> > GetDialogs(IUser user, enSocialNetwork socialNetwork)
        {
            IList <IDialog> dialogs = null;

            try
            {
                String url =
                    String.Format("https://api.vk.com/method/messages.getDialogs?&count={0}&access_token={1}"
                                  , 100.ToString(), user.SerializeInfo);

                HttpClient httpClient = new HttpClient();
                string     response   =
                    await httpClient.GetStringAsync(new Uri(url));

                string[] responseString       = response.Split('[');
                string[] responseDialogsArray = responseString[1].Split('{');

                dialogs = new List <IDialog>();
                foreach (var item in responseDialogsArray)
                {
                    try
                    {
                        string uid     = item.Split(',')[3].Split(':')[1];
                        string message = String.Empty;
                        try
                        {
                            message = item.Split(',')[6].Split(':')[1];
                        }
                        catch (Exception ex)
                        {
                            message = item.Split(',')[6].Split('\"')[0].Trim();
                        }

                        IUser friend = new User()
                        {
                            Uid = uid, SerializeInfo = user.SerializeInfo
                        };
                        IMessage friendMessage = new Message()
                        {
                            Content = message
                        };
                        IDialog dialog = new Dialog(friend, new List <IMessage>()
                        {
                            friendMessage
                        });
                        dialogs.Add(dialog);
                    }
                    catch (Exception ex)
                    {
                    }
                }
            }
            catch (Exception ex)
            {
            }

            return(dialogs);
        }
Example #7
0
		public async Task<IEnumerable<IDialog>> GetDialogs(IUser user, enSocialNetwork socialNetwork)
		{
			IList<IDialog> dialogs = null;
			try
			{
				String url =
					String.Format("https://api.vk.com/method/messages.getDialogs?&count={0}&access_token={1}"
					, 100.ToString(), user.SerializeInfo);

				HttpClient httpClient = new HttpClient();
				string response =
					await httpClient.GetStringAsync(new Uri(url));

				string[] responseString = response.Split('[');
				string[] responseDialogsArray = responseString[1].Split('{');

				dialogs = new List<IDialog>();
				foreach (var item in responseDialogsArray)
				{
					try
					{
						string uid = item.Split(',')[3].Split(':')[1];
						string message = String.Empty;
						try
						{
							message = item.Split(',')[6].Split(':')[1];
						}
						catch (Exception ex)
						{
							message = item.Split(',')[6].Split('\"')[0].Trim();
						}

						IUser friend = new User() { Uid = uid, SerializeInfo = user.SerializeInfo };
						IMessage friendMessage = new Message() { Content = message };
						IDialog dialog = new Dialog(friend, new List<IMessage>() { friendMessage });
						dialogs.Add(dialog);
					}
					catch (Exception ex)
					{

					}
				}
			}
			catch (Exception ex)
			{

			}

			return dialogs;
		}
Example #8
0
        public async Task <IEnumerable <IDialog> > GetDialogs(DataIUser user, enSocialNetwork socialNetwork)
        {
            IEnumerable <IDialog> dialogs = null;

            switch (socialNetwork)
            {
            case enSocialNetwork.VK:
                dialogs = await GetVkDialogs(user);

                break;

            case enSocialNetwork.Twitter:
                dialogs = await GetTwitterDialogs(user);

                break;
            }
            return(dialogs);
        }
Example #9
0
        public async Task <IUser> GetUserInfoRequest(IUser user, enSocialNetwork socialNetwork)
        {
            if (user.HasNotValue())
            {
                return(null);
            }

            switch (socialNetwork)
            {
            case enSocialNetwork.VK:
                return(await GetVkUserInfoRequest(user));

            case enSocialNetwork.Twitter:
                return(await GetTwitterInfoRequest(user));

            default:
                break;
            }

            return(null);
        }
Example #10
0
        public async Task <IEnumerable <DataIUser> > GetUserFriends(DataIUser user, enSocialNetwork socialNetwork)
        {
            IEnumerable <DataIUser> dialogs = null;

            switch (socialNetwork)
            {
            case enSocialNetwork.VK:
                dialogs = await GetUserVkFriends(user);

                break;

            case enSocialNetwork.Twitter:
                dialogs = await GetUserTwitterFriends(user);

                break;

            default:
                break;
            }

            return(dialogs);
        }
		public async Task<IEnumerable<IDialog>> GetDialogWithFriend(DataIUser user, enSocialNetwork socialNetwork)
		{
			IList<IDialog> dialogs = new List<IDialog>();

			try
			{
				Account acc = Account.Deserialize(user.SerializeInfo);
				var request = new OAuth2Request("GET", new Uri("https://api.vk.com/method/messages.getHistory"), null, acc);

				request.Parameters.Add("user_id", user.Uid);

				var res = await request.GetResponseAsync();
				var responseText = res.GetResponseText();

				var msg = JsonConvert.DeserializeObject<XamarinSocialApp.Droid.Data.VkData.VkMessagesResponse>(responseText);
				msg.Response.RemoveAt(0);

				IList<XamarinSocialApp.Droid.Data.VkData.MessageInDialog> msg1
					= new List<XamarinSocialApp.Droid.Data.VkData.MessageInDialog>();
				foreach (var item in msg.Response)
				{
					msg1.Add(JsonConvert.DeserializeObject<XamarinSocialApp.Droid.Data.VkData.MessageInDialog>(item.ToString()));
				}

				foreach (var item in msg1)
				{
					dialogs.Add(new DataDialogs(user, new List<IMessage>() 
				{ 
					new DataMessage() { Content = item.Body } 
				}));
				}
			}
			catch (Exception ex)
			{

			}

			return dialogs;
		}
		public async Task<IUser> GetUserInfoRequest(IUser user, enSocialNetwork socialNetwork)
		{
			if (user.HasNotValue())
				return null;

			Account accCurrent = Account.Deserialize(user.SerializeInfo);
			if (accCurrent.HasNotValue())
				return null;

			if (String.IsNullOrWhiteSpace(user.Uid))
				return null;

			var request = new OAuth2Request("GET", new Uri("https://api.vk.com/method/users.get"), null, accCurrent);
			request.Parameters.Add("uids", user.Uid);

			var res = await request.GetResponseAsync();
			var responseText = res.GetResponseText();

			var users = JsonConvert.DeserializeObject<XamarinSocialApp.Droid.Data.VkData.VkUsers>(responseText);

			var jsonUser = users.response.First();
			return new DataUser() { FirstName = jsonUser.first_name, LastName = jsonUser.last_name, ID = jsonUser.uid, Uid = jsonUser.uid };
		}
		public async Task<IEnumerable<DataIUser>> ShowUserFriends(DataIUser user, enSocialNetwork enSocialNetwork)
		{
			Account acc = Account.Deserialize(user.SerializeInfo);
			var request = new OAuth2Request("GET", new Uri("https://api.vk.com/method/friends.get"), null, acc);

			request.Parameters.Add("fields", "nickname");
			request.Parameters.Add("order", "hints");

			var res = await request.GetResponseAsync();
			var responseText = res.GetResponseText();

			var listFriendsIds = JsonConvert.DeserializeObject<XamarinSocialApp.Droid.Data.VkData.VkUsers>(responseText);

			IList<DataIUser> friends = new List<DataIUser>();

			foreach (var friend in listFriendsIds.response)
			{
				friends.Add(new DataUser() { FirstName = friend.first_name, LastName = friend.last_name });
			}

			return friends;
		}
		public async Task<IEnumerable<IDialog>> GetDialogs(DataIUser user, enSocialNetwork socialNetwork)
		{
			Account acc = Account.Deserialize(user.SerializeInfo);
			var request = new OAuth2Request("GET", new Uri("https://api.vk.com/method/messages.getDialogs"), null, acc);

			request.Parameters.Add("count", "200");
			request.Parameters.Add("v", "5.37");

			var res = await request.GetResponseAsync();
			var responseText = res.GetResponseText();

			var msg = JsonConvert.DeserializeObject<XamarinSocialApp.Droid.Data.VkData.VkDialogsResponse>(responseText);

			IList<IDialog> dialogs = new List<IDialog>();

			foreach (var item in msg.Response.Messages)
			{
				IUser userDialog = new User() { Uid = item.Message.UserId, SerializeInfo = user.SerializeInfo };
				//var userDialog = await GetUserInfoRequest(item.Message.UserId, acc, socialNetwork);
				dialogs.Add(new DataDialogs(userDialog, new List<IMessage>() 
				{ 
					new DataMessage() { Content = item.Message.Body } 
				}));
			}

			return dialogs;
		}
Example #15
0
 public Task <bool> SendMessage(IUser user, IUser friend, string Message, enSocialNetwork enSocialNetwork)
 {
     throw new NotImplementedException();
 }
Example #16
0
 public Task <IUser> Login(enSocialNetwork socialNetwork)
 {
     return(modService.Login(socialNetwork));
 }
Example #17
0
		public Task<bool> SendMessage(IUser user, IUser friend, string Message, enSocialNetwork enSocialNetwork)
		{
			throw new NotImplementedException();
		}
Example #18
0
 public Task <IDialog> GetDialogWithFriend(IUser user, enSocialNetwork socialNetwork, IUser friend)
 {
     throw new NotImplementedException();
 }
Example #19
0
		public async Task<IDialog> GetDialogWithFriend(DataIUser user, enSocialNetwork socialNetwork, IUser friend)
		{
			IDialog dialog = null;

			try
			{
				switch (socialNetwork)
				{
					case enSocialNetwork.VK:
						dialog = await GetVkDialogWithFriend(user, friend);
						break;

					case enSocialNetwork.Twitter:
						dialog = await GetTwitterDialogWithFriend(user, friend);
						break;

					default:
						break;
				}
			}
			catch (Exception ex)
			{
			}

			this.StopRequest();

			return dialog;
		}
Example #20
0
		public async Task<IEnumerable<DataIUser>> GetUserFriends(DataIUser user, enSocialNetwork socialNetwork)
		{
			IEnumerable<DataIUser> dialogs = null;
			switch (socialNetwork)
			{
				case enSocialNetwork.VK:
					dialogs = await GetUserVkFriends(user);
					break;

				case enSocialNetwork.Twitter:
					dialogs = await GetUserTwitterFriends(user);
					break;

				default:
					break;
			}

			return dialogs;
		}
Example #21
0
		public async Task<IUser> Login(enSocialNetwork socialNetwork)
		{
			IUser user = null;
			try
			{
				switch(socialNetwork)
				{
					case enSocialNetwork.VK:
						user = await LoginToVk();
						break;
					case enSocialNetwork.Twitter:
						user = await LoginToTwitter();
						break;

					default:
						break;
				}
			}
			catch (Exception ex)
			{
			}

			return user;
		}
		public async Task<IUser> Login(enSocialNetwork socialNetwork)
		{
			IUser user = null;
			try
			{
				TaskCompletionSource<int> ts = new TaskCompletionSource<int>();

				var auth = new OAuth2Authenticator(
				clientId: "5042701",
				scope: "offline,messages,friends",
				authorizeUrl: new Uri("https://oauth.vk.com/authorize"),
				redirectUrl: new Uri("https://oauth.vk.com/blank.html"));

				auth.AllowCancel = true;

				auth.Completed += (s, ee) =>
				{
					if (!ee.IsAuthenticated)
					{
						ts.SetResult(0);
						return;
					}

					var request = new OAuth2Request("GET", new Uri("https://api.vk.com/method/users.get"), null, ee.Account);
					request.GetResponseAsync().ContinueWith(t =>
					{
						if (t.IsCompleted)
						{
							Token = ee.Account.Properties["access_token"].ToString();
							string account = ee.Account.Serialize();
							Account = ee.Account;

							//AccountStore.Create(Forms.Context).Save(ee.Account, "Vk");
							
							var response = t.Result.GetResponseText();
							var users = JsonConvert.DeserializeObject<XamarinSocialApp.Droid.Data.VkData.VkUsers>(response);

							string uid = users.response[0].uid;
							string firstName = users.response[0].first_name;
							string lastName = users.response[0].last_name;

							user = new User()
							{
								FirstName = firstName,
								LastName = lastName,
								Uid = uid,
								SerializeInfo = Account.Serialize(),
								SocialNetwork = enSocialNetwork.VK
							};

							ts.SetResult(0);
						}
						else
						{
							ts.SetResult(0);
							return;
						}
					}, UIScheduler);
				};

				var intent = auth.GetUI(Forms.Context);
				Forms.Context.StartActivity(intent);
				await ts.Task;
			}
			catch (Exception ex)
			{
			}

			return user;
		}
Example #23
0
        public async Task <bool> SendMessage(DataIUser user, DataIUser friend, string message, enSocialNetwork socialNetwork)
        {
            try
            {
                this.StartRequest();

                switch (socialNetwork)
                {
                case enSocialNetwork.VK:
                    await SendVkMessage(user, friend, message);

                    break;

                case enSocialNetwork.Twitter:
                    await SendTwitterMessage(user, friend, message);

                    break;

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
                return(false);
            }
            finally
            {
                this.StopRequest();
            }

            return(true);
        }
Example #24
0
		public async Task<bool> SendMessage(DataIUser user, DataIUser friend, string message, enSocialNetwork socialNetwork)
		{
			try
			{
				this.StartRequest();

				switch (socialNetwork)
				{
					case enSocialNetwork.VK:
						await SendVkMessage(user, friend, message);
						break;

					case enSocialNetwork.Twitter:
						await SendTwitterMessage(user, friend, message);
						break;

					default:
						break;
				}
			}
			catch (Exception ex)
			{
				return false;
			}
			finally
			{
				this.StopRequest();
			}

			return true;
		}
Example #25
0
		public Task<IEnumerable<IUser>> GetUserFriends(IUser user, enSocialNetwork enSocialNetwork)
		{
			throw new NotImplementedException();
		}
Example #26
0
		public async Task<IEnumerable<IDialog>> GetDialogs(DataIUser user, enSocialNetwork socialNetwork)
		{
			IEnumerable<IDialog> dialogs = null;
			switch(socialNetwork)
			{
				case enSocialNetwork.VK:
					dialogs = await GetVkDialogs(user);
					break;

				case enSocialNetwork.Twitter:
					dialogs = await GetTwitterDialogs(user);
					break;
										
			}
			return dialogs;
		}
Example #27
0
		public Task<IDialog> GetDialogWithFriend(IUser user, enSocialNetwork socialNetwork, IUser friend)
		{
			throw new NotImplementedException();
		}
Example #28
0
		public async Task<IUser> GetUserInfoRequest(IUser user, enSocialNetwork socialNetwork)
		{
			if (user.HasNotValue())
				return null;

			switch (socialNetwork)
			{
				case enSocialNetwork.VK:
					return await GetVkUserInfoRequest(user);

				case enSocialNetwork.Twitter:
					return await GetTwitterInfoRequest(user);

				default:
					break;
			}

			return null;
		}
Example #29
0
		public async Task<IUser> GetUserInfoRequest(IUser user, enSocialNetwork enSocialNetwork)
		{
			try
			{
				HttpClient httpClient = new HttpClient();
				string urlGetUser =
					String.Format("https://api.vk.com/method/users.get?token={0}&user_ids={1}",
					user.SerializeInfo, user.Uid
					);

				string response =
					await httpClient.GetStringAsync(new Uri(urlGetUser));

				string firstName = response.Split('[')[1].Split(',')[1].Split('\"')[3];
				string lastName = response.Split('[')[1].Split(',')[2].Split('\"')[3];

				return new User() { FirstName = firstName, LastName = lastName, Uid = user.Uid, SerializeInfo = user.SerializeInfo };
			}
			catch (Exception ex)
			{

			}
			return null;
		}
		public Task<IUser> Login(enSocialNetwork socialNetwork)
		{
			return modService.Login(socialNetwork);
		}
Example #31
0
 public Task <IEnumerable <IUser> > GetUserFriends(IUser user, enSocialNetwork enSocialNetwork)
 {
     throw new NotImplementedException();
 }