Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
Nongradauser
0 / 0 / 0
Регистрация: 30.08.2016
Сообщений: 4
1

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

29.01.2017, 15:05. Просмотров 1299. Ответов 9

Доброго времени суток!

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

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

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

Приложение для работы с ВК
Доброго времени суток. Предисловие: для ознакомления с работой...

Приложение для беседы вк
Есть беседа вк. В ней есть n людей. Как создать приложение, чтобы оно выдавало...

Приложение для астрономии
Эффективна ли в c# (Visual studio) работа с большими массивами?

приложение для линейного программирования
Помогите написать приложение для решения задачи линейного программирования...

Приложение для рисования треугольников
Создать приложение для рисования треугольников: когда пользователь щелкает по...

9
godred2
9 / 9 / 3
Регистрация: 30.11.2015
Сообщений: 56
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
Рядовой
325 / 222 / 132
Регистрация: 17.05.2015
Сообщений: 851
Завершенные тесты: 1
29.01.2017, 22:28 3
Цитата Сообщение от Nongradauser Посмотреть сообщение
Vkontakte API for .NET
Пытался на ней писать что то подобное. Все загнулось на том, что библиотека не правильно парсит данные, в итоге половина свойств после ответа сервера остаются null (или такое только у меня?)
0
godred2
9 / 9 / 3
Регистрация: 30.11.2015
Сообщений: 56
29.01.2017, 22:30 4
Рядовой, Не только у вас. Эта апишка уже вне разработки. Лучше использовать VKNET
0
Nongradauser
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
godred2
9 / 9 / 3
Регистрация: 30.11.2015
Сообщений: 56
30.01.2017, 22:10 6
Nongradauser, Дело в том, что авторизация не мгновенная. Дай время для авторизации, а потом используй все остальное
0
Nongradauser
0 / 0 / 0
Регистрация: 30.08.2016
Сообщений: 4
30.01.2017, 22:15  [ТС] 7
Цитата Сообщение от godred2 Посмотреть сообщение
Nongradauser, Дело в том, что авторизация не мгновенная. Дай время для авторизации, а потом используй все остальное
Так ведь отправка сообщений, написанная в методе авторизации работает сразу. Как только выношу за пределы - сразу ошибка.
0
godred2
9 / 9 / 3
Регистрация: 30.11.2015
Сообщений: 56
30.01.2017, 22:16 8
Nongradauser, Ну скинь код
0
Nongradauser
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
godred2
9 / 9 / 3
Регистрация: 30.11.2015
Сообщений: 56
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.01.2017, 23:33

Приложение для голосового общения
Добрый день. я пишу программу для голосового общения, мне нужно реализовать...

Приложение для отображения характеристик ОС
Подскажите источники, где можно побольше узнать об этом.

Приложение для работы с браузером
Всем привет. Немного пишу на C#, но с web ещё не сталкивался. Нужно написать...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru