Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/34: Рейтинг темы: голосов - 34, средняя оценка - 4.65
0 / 0 / 0
Регистрация: 30.08.2016
Сообщений: 4
1

Приложение для vk

29.01.2017, 15:05. Показов 6881. Ответов 9

Author24 — интернет-сервис помощи студентам
Доброго времени суток!

Т.к. учусь программированию, поставил задачу себе написать банальное приложение для работы с вк.
Но есть проблема, а именно одна - нифига не получается.

Пробовал писать сам первую цель - отправку сообщений из приложения себе в личку, написал авторизацию через api по примеру с ютуба и get-запрос на получение истории сообщений (удачно), но дальше дело не пошло (не удалось написать правильный post-запрос на отправку сообщений).
Потом пробовал использовать библиотеку готовую - Vkontakte API for .NET, вот её страница на codeplex. Тоже никакого выхлопа, так как код вижу, а как его правильно использовать - понятия не имею.

Собственно вопросы:
1) Общий вопрос - как работать с api vk на c#. Видео, гайды - всё, что угодно, лишь бы работало и можно было разобраться в коде (себе на будущее).
2) Если исходить из написания своего кода, то как правильно составить post-запрос к vk, чтобы можно было отправить сообщение (message.send).
3) Если же из готовой библиотеки, то есть ли примеры её использования? Или какие-то советы в этом плане?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.01.2017, 15:05
Ответы с готовыми решениями:

Выбор решения для проекта! Приложение для Windows + приложение для Android или Web приложение?
Здравствуйте! Один мой знакомый, владелец мебельной фирмы, обратился ко мне с серьезным...

Как подключать приложение к MySQL - свое подключение для каждой формы, или одно на всё приложение?
Вопрос: как правильно организовать подключение к базе MySQL для приложения, которое обращается к...

Переделать приложение для Android в приложение для ПК
Встретилась очень мне нужное приложение для анроид систем. К моему сожалению подобных программ нет...

Разработать приложение для вычисления функции y=f(x) для заданного значения аргумента x
Разработать приложение для вычисления функции y=f(x) для заданного значения аргумента x. Функция...

9
9 / 9 / 3
Регистрация: 30.11.2015
Сообщений: 64
29.01.2017, 20:28 2
Лучший ответ Сообщение было отмечено Nongradauser как решение

Решение

Ну мне вот это нравится - https://vknet.github.io/vk/authorize/
Он более понятен новичкам.
Вот функции:
https://vknet.github.io/vk/

Не по теме:

Будет время - напишу пример для тебя



Добавлено через 2 часа 50 минут
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VkNet;
using VkNet.Enums;
using VkNet.Enums.Filters;
using VkNet.Enums.SafetyEnums;
using VkNet.Model.RequestParams;
using VkNet.Model;
using VkNet.Model.Attachments;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            VkAuth();
            Console.ReadLine();
        }
        public static void VkAuth()
        {
            ulong appID = 12345678;                         // ID приложения
            string login = "123456789";         // email или телефон
            string pass = "pass";               // пароль для авторизации
            Settings scope = Settings.All;      // Приложение имеет доступ к друзьям
 
            var vk = new VkApi();
            vk.Authorize(new ApiAuthParams
            {
                ApplicationId = appID,
                Login = login,
                Password = pass,
                Settings = scope
            });
 
            long Taker = 123456789; // ID получателя
            string msg = "Привет, я робот";
            var send = vk.Messages.Send(new MessagesSendParams
            {
                UserId = Taker,
                Message = msg
            });
        }
    }
}
1
1517 / 908 / 328
Регистрация: 17.05.2015
Сообщений: 3,430
29.01.2017, 22:28 3
Цитата Сообщение от Nongradauser Посмотреть сообщение
Vkontakte API for .NET
Пытался на ней писать что то подобное. Все загнулось на том, что библиотека не правильно парсит данные, в итоге половина свойств после ответа сервера остаются null (или такое только у меня?)
0
9 / 9 / 3
Регистрация: 30.11.2015
Сообщений: 64
29.01.2017, 22:30 4
Рядовой, Не только у вас. Эта апишка уже вне разработки. Лучше использовать VKNET
0
0 / 0 / 0
Регистрация: 30.08.2016
Сообщений: 4
30.01.2017, 22:08  [ТС] 5
Цитата Сообщение от godred2 Посмотреть сообщение
Ну мне вот это нравится - https://vknet.github.io/vk/authorize/
Он более понятен новичкам.
Вот функции:
https://vknet.github.io/vk/
Спасибо большое, конкретно этот код помог. Разобрался чуток с библиотекой, посмотрел её.

Но теперь новый вопрос: я так понимаю, для действий с API контакта требуется постоянно пересылать токен. Но как его вызывать вне метода авторизации?

То есть: отправка сообщений из твоего примера работает корректно, но только в методе авторизации. Как только я выношу отправку сообщений за метод авторизации, то сразу вылезает исключение "VkNet.Exception.AccessTokenInvalidException" в VkNet.dll

Всю же программу в рамки одного метода авторизации не впихнёшь же?))

UPD: или только что как вариант в голову пришел - использовать свою авторизацию, а потом эту библиотеку. Но как тогда потом передавать полученный токен для того, чтобы методы работали?
0
9 / 9 / 3
Регистрация: 30.11.2015
Сообщений: 64
30.01.2017, 22:10 6
Nongradauser, Дело в том, что авторизация не мгновенная. Дай время для авторизации, а потом используй все остальное
0
0 / 0 / 0
Регистрация: 30.08.2016
Сообщений: 4
30.01.2017, 22:15  [ТС] 7
Цитата Сообщение от godred2 Посмотреть сообщение
Nongradauser, Дело в том, что авторизация не мгновенная. Дай время для авторизации, а потом используй все остальное
Так ведь отправка сообщений, написанная в методе авторизации работает сразу. Как только выношу за пределы - сразу ошибка.
0
9 / 9 / 3
Регистрация: 30.11.2015
Сообщений: 64
30.01.2017, 22:16 8
Nongradauser, Ну скинь код
0
0 / 0 / 0
Регистрация: 30.08.2016
Сообщений: 4
30.01.2017, 22:39  [ТС] 9
Цитата Сообщение от godred2 Посмотреть сообщение
Nongradauser, Ну скинь код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using VkNet;
using VkNet.Enums;
using VkNet.Enums.Filters;
using VkNet.Model.RequestParams;
 
namespace Example_vk
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            VkAuth();
        }
 
        public static void VkAuth()
        {
            ulong appID = №№№№№;    //ID приложения (настройки вк)
            string login = "++++++++++++";    //Логин
            string pass = "++++++++++++++";      //Пасс
            Settings scope = Settings.All;        //Настройки доступа
 
            var vk = new VkApi();
            vk.AuthorizeAsync(new ApiAuthParams
                {
                    ApplicationId = appID,
                    Login = login,
                    Password = pass,
                    Settings = scope
                });
        }
        private void button2_Click(object sender, EventArgs e)
        {
            MessageSend();
        }
 
        public static void MessageSend()
        {
            long Receiver = №№№№№;
            string msg = "Hello";
            var send = new VkApi();
            send.Messages.Send(new MessagesSendParams
            {
                UserId = Receiver,
                Message = msg,
            });
        }
 
    }
}
Делаю через ВинФорм, на форме пока всего 2 кнопки (button1 & button2) - по нажатию на 1й должна производиться авторизация, а по 2й и последующим - отправка сообщений или иные действия. При таком коде, как у меня выкидывает ошибку, что я описывал выше(
0
9 / 9 / 3
Регистрация: 30.11.2015
Сообщений: 64
30.01.2017, 23:33 10
Пробуй

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using VkNet;
using VkNet.Enums;
using VkNet.Enums.Filters;
using VkNet.Model.RequestParams;
 
namespace Example_vk
{
    public partial class Form1 : Form
    {
 
        public static VkApi vk = new VkApi();
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            VkAuth();
        }
 
        public static void VkAuth()
        {
            ulong appID = №№№№№;    //ID приложения (настройки вк)
            string login = "++++++++++++";    //Логин
            string pass = "++++++++++++++";      //Пасс
            Settings scope = Settings.All;        //Настройки доступа
 
            vk.AuthorizeAsync(new ApiAuthParams
                {
                    ApplicationId = appID,
                    Login = login,
                    Password = pass,
                    Settings = scope
                });
        }
        private void button2_Click(object sender, EventArgs e)
        {
            MessageSend();
        }
 
        public static void MessageSend()
        {
            long Receiver = №№№№№;
            string msg = "Hello";
            vk.Messages.Send(new MessagesSendParams
            {
                UserId = Receiver,
                Message = msg,
            });
        }
 
    }
}
0
30.01.2017, 23:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.01.2017, 23:33
Помогаю со студенческими работами здесь

Нужно разработать приложение для бар-клуба. Для ios, android
Добрый день!!! Кто может помочь или посоветовать программиста. Главное окно: картинка с акциями...

Клиент-серверное приложение для для предложенной схемы мультиплексирования сообщений
Напишите, откомпилируйте и прогоните программы сервера и клиентов для предложенной схемы...

Приложение для доставки еды с выводом суммы для оплаты
Помогите! не могу сделать лабораторную, нужно чтобы были таблицы "клиенты" и например "напитки"...

Приложение для расчета количества рулонов обоев, необходимых для оклейки стен комнаты.
Программа должна содержать форму, в которую работник вводит длину и ширину комнаты, высоту...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru