static void Main(string[] args) { int appID = 5293954; //id приложения, который выдается при регистрации приложения в ВК string login = "******";// логин и пороль пользователя string password = "******"; // в целях безопасности моей страницы в ВК, пороль не настоящий Settings scope = Settings.Groups; var vk = new VkApi(); vk.Authorize(appID, login, password, scope); // авторизация --> documentation https://vknet.github.io/vk/authorize/ int outCount; Group embassyUSA = vk.Groups.Search("Посольство США в Беларуси", out outCount).First();// получаем данные о группе PhotoGetAlbumsParams param = new PhotoGetAlbumsParams(); param.OwnerId = embassyUSA.Id * (-1); // индентификатор группы, для полуния ее альбомов (умножен на -1, так как cказано в документации API -> https://vknet.github.io/vk/photos/getAlbums/) param.Count = 7; int count = 0; var albums = vk.Photo.GetAlbums(out count, param);// получаем все альбомы var selfieAlbum = albums.Where(x => x.Title == "Selfie Contest").First(); // выбираем альбом по названию, в котором фото учасников PhotoGetParams photoParam = new PhotoGetParams(); photoParam.OwnerId = embassyUSA.Id * (-1); // индентификатор группы, для полуния ее альбомов (умножен на -1, так как cказано в документации API -> https://vknet.github.io/vk/photos/get/) photoParam.AlbumId = PhotoAlbumType.Id(selfieAlbum.Id); // тут указываем, индентификатор альбома, фотографии которого нам нужны photoParam.Extended = true; photoParam.Count = 82; var selfiePhotos = vk.Photo.Get(out count, photoParam);// получаем список фотографий int number = 1;// счетчик номера фотографии foreach (var photo in selfiePhotos)//перебираем фотографии по одной, начиная с первой { LikesGetListParams listParam = new LikesGetListParams(); listParam.Count = 500; listParam.ItemId = photo.Id.Value; //берем индентификатор текущей фотографии listParam.Type = LikeObjectType.Photo; listParam.Filter = LikesFilter.Likes; // говорим, что хотим получить информацию о лайках пользователей listParam.OwnerId = embassyUSA.Id * (-1); // указываем индентификатор владельца фотографи, т. е. вашей группы var users = vk.Likes.GetList(listParam); // получаем список пользователей лайкнувших данную фотографию --> documentation https://vknet.github.io/vk/likes/getList/ int inGroup = 0; // счетчик для количества, лайкнувших текущую фотографию, пользователей, которые состоят в группе. foreach (var id in users)//перебираем пользователей, лайкнувших текущую фотографию, по одному, начиная с первого { Thread.Sleep(400);// приостанавливаем программу на 0.4 секунды, так как есть ограничение на количество запросов к Вконтакте в секунду. if (vk.Groups.IsMember(embassyUSA.Id, id))//проверяем состоит ли текущий пользователь в группе --> documentation https://vknet.github.io/vk/groups/isMember/ { inGroup = inGroup + 1; // если состоит, увеличиваем счетчик на 1 } } Console.WriteLine(String.Format("{0} Likes - {1} InGroup - {2} ", number, users.Count, inGroup)); // Отображаем информациию на консоль. number++; } Console.ReadLine();// Ждем нажатия клавиши интер, после чего приложение(консоль) закрывается. }
private void authButton_Click(object sender, RoutedEventArgs e) { if (tbLogin.Text == "" || tbPassword.Password == "") MessageBox.Show("Please, fill all the fields!", "Error", MessageBoxButton.OK, MessageBoxImage.Error); else { var vkApi = new VkApi(); try { vkApi.Authorize(Convert.ToInt32(Properties.Settings.Default.appId), tbLogin.Text, tbPassword.Password.ToString(), VkNet.Enums.Filters.Settings.All); Properties.Settings.Default.token = vkApi.AccessToken; Properties.Settings.Default.id = vkApi.UserId.ToString(); Properties.Settings.Default.auth = true; Properties.Settings.Default.Save(); this.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } }
//// private VkApi api; // public VkNetAddition(VkApi vkApi) { // now = DateTime.Now; // api = vkApi; // } public List<User> Search(VkApi api, out int itemsCount, string query = null, int count = 1000, int offset = 0, Dictionary<string, string> parameters = null) { List<User> users = new List<User>(); StringBuilder sb = new StringBuilder("https://api.vk.com/method/users.search?"); if (query != null) sb.AppendFormat("{0}={1}&", "q", query); if (parameters != null) { foreach (var parameter in parameters) { sb.AppendFormat("{0}={1}&", parameter.Key, parameter.Value); } } sb.AppendFormat("v=5.37&access_token={0}", api.AccessToken); itemsCount = int.Parse(request(String.Format("{2}&{0}={1}", "count", count, sb.ToString()))["response"]["count"].ToString()); JObject jUsers = request(String.Format("{2}&{0}={1}&{3}={4}", "count", count > 1000 ? 1000 : count, sb.ToString(), "offset", offset)); Members[] members = JsonConvert.DeserializeObject<Members[]>(jUsers["response"]["items"].ToString()); foreach (var member in members) { User user = new User(); user.Id = member.id; user.FirstName = member.first_name; user.LastName = member.last_name; users.Add(user); } return users; }
public VKController(VkApi api = null) { if (api == null) API = new VkApi(); else API = api; }
public TelegramSender(IConfiguration configuration, ILogger <VkApi> logger) { var tokens = configuration.GetSection("Tokens").Get <TokenConfig>(); Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); _userId = tokens.TelegramId; _telegram = new TelegramBotClient(tokens.Telegram); _telegram.OnMessage += _telegram_OnMessage; _telegram.OnMessageEdited += _telegram_OnMessageEdited; _telegram.OnCallbackQuery += _telegram_OnCallbackQuery; _telegram.StartReceiving(); _vkNet = new VkApi(logger); _vk = new Vkontakte(0) { AccessToken = new VkLibrary.Core.Auth.AccessToken { Token = tokens.Vk, ExpiresIn = 0 } }; _vkNet.Authorize(new VkNet.Model.ApiAuthParams { AccessToken = tokens.Vk }); var poolServer = _vkNet.Messages.GetLongPollServer(); _vkPool = _vk.StartLongPollClient(poolServer.Server, poolServer.Key, (int)poolServer.Ts).GetAwaiter().GetResult(); _vkPool.AddMessageEvent += _vkPool_AddMessageEvent; _httpClient.DefaultRequestHeaders.Add("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"); }
public VkAuthorizer(VkApi api, int appId, string userName, string password) { this.api = api; this.appId = appId; this.userName = userName; this.password = password; }
public Home() { vk = Vk_Api.getAPI(); InitializeComponent(); getRemember(); }
private void bSave_Click(object sender, EventArgs e) { WebClient webc = new WebClient(); pb1.Visible = true; pb1.Maximum = mList.Items.Count; pb1.Minimum = 1; pb1.Step = 1; pb1.Value = 1; int appID = 5272595; // ID приложения string email = "your email"; // email или телефон string pass = "******"; // пароль для авторизации Settings scope = Settings.All; var vks = new VkApi(); vks.Authorize(appID, email, pass, scope); int totalCount; for(int i = 0;i <= mList.Items.Count;i++) { try { var audios = vks.Audio.Search(mList.Items[i].ToString(), out totalCount); Uri u = new Uri(audios[0].Url.OriginalString); webc.DownloadFile(u, @"E:\music\" + audios[0].Title + ".mp3"); pb1.PerformStep(); } catch(Exception exc) { MessageBox.Show(exc.Message); } } }
public static void Save(VkApi api, User user) { saveData = new SaveData(); saveData.Api = new VkApi(); saveData.User = new User(); saveData.Api = api; saveData.User = user; }
private VkApiFactory() { vk = new VkApi(); vk.isDefaultVkApi = true; vk.email = email; vk.Authorize(appID, email, pass, scope); timer = new Timer(relogin, null, interval1day, interval1day); }
public Crawler(VkApi api, IConnectionChecker checker, IAuthorizer authorizer, IUrlConverter converter, IDatabaseProvider databaseDbProvider, IGroupInfoProvider groupInfoProvider) { this.api = api; this.checker = checker; this.converter = converter; this.authorizer = authorizer; this.dbProvider = databaseDbProvider; this.groupInfoProvider = groupInfoProvider; }
public static VkApi getAPI() { if (API == null) { API = new VkApi(); } return API; }
public List<VkApi> botAutorization(StreamReader sr, int count, int appId) { List<VkApi> result = new List<VkApi>(); for (int i = 0; i < count; i++) { string[] login_pass = sr.ReadLine().Split(';'); VkApi api = new VkApi(); try { api.Authorize(appId, login_pass[0], login_pass[1], VkNet.Enums.Filters.Settings.All); // авторизуемся } catch (VkNet.Exception.VkApiAuthorizationException) { MessageBox.Show(string.Format("Проблема с авторизацией у {0};{1}", login_pass[0], login_pass[1])); break; } result.Add(api); } return result; }
private void authorizationBeta() { try { int appID = 12345; // ID приложения string email = "+380931296865"; // email или телефон string pass = "******"; // пароль для авторизации Settings scope = Settings.All; vk = new VkApi(); vk.Authorize(appID, email, pass, scope); MessageBox.Show("Авторизация прошла успешно"); } catch (VkApiAuthorizationException e) {MessageBox.Show(e.Message); } catch (VkApiException e) { MessageBox.Show(e.Message); } catch (Exception e) { MessageBox.Show(e.Message); } }
public VkApi getVkApi(string email, string pass, Settings settings) { if(timersPool.ContainsKey(email)) { return timersPool[email].vk; } else { vk = new VkApi(); vk.isDefaultVkApi = false; vk.email = email; vk.Authorize(appID, email, pass, settings); VkApiWrapper wrap = new VkApiWrapper(); wrap.vk = vk; wrap.password = pass; wrap.settings = settings; timersPool[email] = wrap; return vk; } }
public MusicLoader(string syncDir, string token, long userId) { DependencyUtility.BuildUp(this); syncDirectory = syncDir; this.userId = userId; api = new VkApi(); api.Authorize(token, userId); api.Invoke("stats.trackVisitor", new Dictionary<string, string>(), true); // статистика посещаемости приложения remoteAudioSizeHelper = new RemoteAudioSizeHelper(Path.Combine(AppPaths.SettingsPath, "sizes.dat")); tracks = new ConcurrentSortedList<int, Track>(); int key = 0; foreach (var track in TrackRepository.GetTracks()) tracks.Add(key++, track); }
public WallWatcher(VkApi api, long gid) { API = api; OwnerId = gid; Active = false; LastPostId = -1; FixedPostId = -1; TooManyRequestsDelay = 150; }
private void InitProviders(IWebDownloader downloader, VkApi api, long user) { PlayingStateChangedEventHandler handler; var factory = GetFactory(downloader, out handler); __InfoProvider = new AudioInfoProvider((userId, count, offset) => api.Audio.Get(userId, null, null, count, offset), userId => api.Audio.GetCount(userId), factory, user, handler); __InfoCacheOnlyProvider = new AudioInfoCacheOnlyProvider(factory, __AudioStorage, user, handler); }
private void downloadProfiles_Click(object sender, EventArgs e) { fromFile = radioButton2.Checked; int appId = 4736419; // указываем id приложения string email = getLogin(0);//"*****@*****.**"; // email для авторизации string password = getPass(0);//"qwerty123"; // пароль Settings settings = Settings.All; // уровень доступа к данным int oldGRM = gRM; int oldGRF = gRF; var api = new VkApi(); try { api.Authorize(appId, email, password, settings); // авторизуемся } catch (VkNet.Exception.VkApiAuthorizationException) { MessageBox.Show("Проблема с авторизацией"); return; } var group = api.Utils.ResolveScreenName(getGroup()); // получаем id сущности с коротким именем habr // получаем id пользователей из группы, макс. кол-во записей = 1000 int totalCountMembers; // общее кол-во участников ReadOnlyCollection<long> userId; StreamWriter sw = new StreamWriter("ids.txt"); int tmp = getOffset(); while (tmp < (getCount() + getOffset())) { try { userId = api.Groups.GetMembers(group.Id.Value, out totalCountMembers, getCount(), getOffset()); tmp += 1000; } catch (NullReferenceException) { MessageBox.Show("Группа указана не верно"); return; } foreach (long id in userId) { sw.WriteLine(id); } } sw.Close(); gRF = oldGRF; gRM = oldGRM; MessageBox.Show("Complete"); }
public VkSocialApi(VkApi vkApi) { _vkApi = vkApi; }
//Methods public SignInViewModel() { scope = Settings.All; User = new User(); authInformation = new AuthInformation(); api = new VkApi(); MainWindow.messageManager = new MessageManager(); }
private void Form1_Load(object sender, EventArgs e) { vkapi = new VkApi(); vkapi.Authorize(appId, myTel, myPass, Settings.Groups | Settings.Wall); token = vkapi.AccessToken; }
private Vk_Api() { VkApi api = new VkApi(); }
public CrawlerStatistic(VkApi api) { vkapi = api; }
private void LongPool_NewMessages(VkApi owner, ReadOnlyCollection<Message> messages) { if (NewMessages != null) NewMessages(owner, messages); }
private long GetUserIdFromString(VkApi api, string id) { long longId; if (id.StartsWith("id")) { id = id.Substring(2); if (Int64.TryParse(id, out longId)) return longId; } var dict = new Dictionary<string, string>(); dict.Add("user_ids", id); try { var res = api.Invoke("users.get", dict, true); var serializer = new JsonSerializer(); dynamic resDict = serializer.Deserialize(new JsonTextReader(new StringReader(res))); id = resDict["response"][0]["uid"]; if (!Int64.TryParse(id, out longId)) throw new AuthIDException("Invalid id!"); return longId; } catch { throw new AuthIDException("Invalid id!"); } }
private void btnRun_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(tbMethodName.Text)) { MessageBox.Show("Не указано имя метода!"); return; } // get authorization values from app.config int appId; try { string appIdValue = ConfigurationManager.AppSettings["appId"]; appId = Convert.ToInt32(appIdValue); } catch (FormatException) { MessageBox.Show("Ошибка в разборе appId из app.config", "Ошибка приложения", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } string login = ConfigurationManager.AppSettings["login"]; string password = ConfigurationManager.AppSettings["password"]; btnRun.Enabled = btnGetTest.Enabled = false; // Authorize on vk server var api = new VkApi(); try { api.Authorize(appId, login, password, Settings.All); } catch (VkApiException) { MessageBox.Show("Ошибка авторизации. Проверьте данные в app.config.", "Ошибка приложения", MessageBoxButtons.OK, MessageBoxIcon.Error); btnRun.Enabled = btnGetTest.Enabled = true; return; } // Combine parameters var parameters = new VkParameters(); for (int i = 1; i < 11; i++) { var name = (TextBox) pnlParams.Controls.Find(string.Format("tbParamName{0}", i), false)[0]; var value = (TextBox)pnlParams.Controls.Find(string.Format("tbParamValue{0}", i), false)[0]; string paramName = name.Text.Trim(); string paramValue = value.Text.Trim(); if (string.IsNullOrEmpty(paramName)) continue; parameters.Add(paramName, paramValue); } string methodName = tbMethodName.Text.Trim(); VkResponse response; try { response = api.Call(methodName, parameters); } catch (VkApiException ex) { MessageBox.Show(ex.InnerException != null ? ex.InnerException.Message : ex.Message, "Ошибка приложения", MessageBoxButtons.OK, MessageBoxIcon.Error); btnRun.Enabled = btnGetTest.Enabled = true; return; } tbJson.Text = response.RawJson; _apiUrl = api.GetApiUrl(methodName, parameters); llVkApiUrl.Text = _apiUrl.Length > 80 ? _apiUrl.Substring(0, 80) + "..." : _apiUrl; btnRun.Enabled = btnGetTest.Enabled = true; }
void start(int nOfBot) { int appId = 4736419; // указываем id приложения string email = getLogin(nOfBot);//"*****@*****.**"; // email для авторизации string password = getPass(nOfBot);//"qwerty123"; // пароль Settings settings = Settings.All; // уровень доступа к данным var api = new VkApi(); try { api.Authorize(appId, email, password, settings); // авторизуемся } catch (VkNet.Exception.VkApiAuthorizationException) { MessageBox.Show("Проблема с авторизацией"); return; } var group = api.Utils.ResolveScreenName(getGroup()); // получаем id сущности с коротким именем habr var userIds = new List<long>(); StreamReader sr = new StreamReader("ids.txt"); while (!sr.EndOfStream) userIds.Add(long.Parse(sr.ReadLine())); sr.Close(); StreamWriter sw = new StreamWriter("ids.txt"); foreach (long id in userIds) { if (getRequiredMessages() == 0 && getRequiredFriends() == 0) { sw.WriteLine(id); break; } if (!api.Users.Get(id).CanWritePrivateMessage && getRequiredMessages() > 0) { sendMessage(api, id); gRM--; } else if (getRequiredFriends() > 0) { if (id == api.UserId) break; api.Friends.Add(id); gRF--; } else sw.WriteLine(id); } getRequiredFriends(); getRequiredMessages(); sw.Close(); }
void sendMessage(VkApi api, long id) { string tmp = ""; if (srMes.EndOfStream) { srMes.Close(); srMes = new StreamReader(openFileDialog2.FileName); } tmp = srMes.ReadLine(); while (tmp[tmp.Length - 1] != '*') { if (srMes.EndOfStream) { srMes.Close(); srMes = new StreamReader(openFileDialog2.FileName); } api.Messages.Send(id, false, tmp); // посылаем сообщение пользователю tmp = srMes.ReadLine(); } }
private void InitInternal(string email, string password, IWebDownloader downloader, string userId = null) { var api = new VkApi(); try { api.Authorize(APP_ID, email, password, Settings.Audio); } catch (Exception e) { throw new AuthException("Authorization error! Original exception:\n" + e.ToString()); } var id = userId != null ? GetUserIdFromString(api, userId) : api.UserId.Value; UserFirstName = api.Users.Get(id).FirstName; InitProviders(downloader, api, id); __AudioStorage.StoreLastUserId(userId); if (userId != null) __AudioStorage.StoreUserAlias(userId, id, UserFirstName); __IsInit = true; }
public string GenerateUnitTest(string categoryName, string accessToken) { // 1. read assembly // 2. find methods in particular category // 3. find methods with not input parameters (it's the most simple case) // 4. invoke a method // 5. construct unit-test // 6. return it Assembly dll = Assembly.LoadFrom("VkNet.dll"); // todo refactor it later List<Type> classes = dll.GetTypes().Where(t => t.Name.Contains("Category") && t.Name.Contains(categoryName)).ToList(); Type category = classes.FirstOrDefault(); MethodInfo[] methods = category.GetMethods(BindingFlags.Instance | BindingFlags.DeclaredOnly | BindingFlags.Public); var genMethods = new List<VkMethodGenInfo>(); foreach (var methodInfo in methods) { var genInfo = GetMethodData(methodInfo); if (string.IsNullOrEmpty(genInfo.ApiMethod)) continue; Debug.WriteLine(genInfo.ToString()); genMethods.Add(genInfo); } // invoke and get json and url var api = new VkApi(); api.Authorize(accessToken); // TODO must be authorized var unittests = new List<UnitTestInfo>(); var testCategory = new StringBuilder(); foreach (var m in genMethods) { if (m.Skip) continue; var test = new UnitTestInfo { Name = string.Format("{0}_", m.Name), Url = Utilities.PreetyPrintApiUrl(api.GetApiUrl(m.ApiMethod, m.Params)) }; // TODO refactor this shit int index = test.Url.IndexOf("access_token", StringComparison.InvariantCulture); if (index != -1) { test.Url = test.Url.Substring(0, index) + "access_token=token\";"; } test.Json = Utilities.PreetyPrintJson(api.Invoke(m.ApiMethod, m.Params)); unittests.Add(test); testCategory.Append(test); } File.WriteAllText(@"d:\vk.txt", testCategory.ToString()); return string.Empty; //throw new NotImplementedException(); }