Отправка сообщения через VK API при запуске

504
14 мая 2017, 21:26

C# практически не знаю, но встала задача реализовать приложение. Суть его в том, чтобы при запуске приложения(только один раз при запуске), через VK API, определенному пользователю отправлялось сообщение. Никаких авторизаций нет, есть только id кому отправить, токен и сообщение. Помогите с реализацией или посоветуйте пожалуйста статей на эту тематику, а то в интернете только сложные многоуровневые авторизации и отправки, чего мне не нужно.

Answer 1

Здравствуй! Думаю, если б ты почитал документацию ВК-api, ты бы итак справился. Вот тебе метод отправки сообщения, принимающий на вход текст сообщения, ID получателя и твой токен. Если нужна помощь с его получением (токена) - пиши

private string SendMessage(string message, string id, string token)
{
    try
    {
        WebClient client = new WebClient() { Encoding = Encoding.UTF8 };
        return client.DownloadString(string.Format("https://api.vk.com/method/messages.send.xml?user_id={0}&message={1}&access_token={2}",id,HttpUtility.UrlEncode(message),token));
    }
    catch (WebException ex) { return ex.Message; }
}
Answer 2

Самый простой способ, как мне кажется: Создаете Stan alone приложение, получаете его ID. Используете https://vk.com/dev/messages.send метод Пример на PHP public function sendMessage($message){ $this->method = 'messages.send'; $this->params['access_token'] = ''; $this->params['message'] = $message['text']; $this->params['user_id'] = $message['user_id']; return json_decode($this->executeRequest(),true); } private function executeRequest(){ return file_get_contents(VK_API.$this->method, false, stream_context_create(array( 'http' => array( 'method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => http_build_query($this->params) ) ))); }

Получить access token можно по ссылке:

https://oauth.vk.com/authorize?client_id=ID_ВАШЕГО_ВК_ПРИЛОЖЕНИЯ&display=page&redirect_uri=https://oauth.vk.com/blank.html&scope=offline,messages&response_type=token&v=5.37

на c# писанины будет чуть больше, но суть такая же

Answer 3

Если кому-то поможет, то вот код, который я использовал.

using System;
using System.Net;
namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            // Адрес ресурса, к которому выполняется запрос
            string url = "http://site.com/";
            // Создаём объект WebClient
            using (var webClient = new WebClient())
            {
                // Выполняем запрос по адресу и получаем ответ в виде строки
                var response = webClient.DownloadString(url);
            }
        }
    }
}
READ ALSO
Не даёт открыть файл через OpenFileDialog

Не даёт открыть файл через OpenFileDialog

На форме есть кнопка и она должна открывать текстовые файлы с помощью OpenFileDialog(то есть текствые файлы разбросаны по компьютеру или же нужно...

370
Отображение изображения из файла в PictureBox

Отображение изображения из файла в PictureBox

В ListBox добавляется музыкаНужно чтобы когда пользователь выберет/выделит музыку в ListBox и после нажмет на Button, то в PictureBox должна отобразится...

302
Вызов функции GetSystemInfo через p/invoke возвращает неверный результат

Вызов функции GetSystemInfo через p/invoke возвращает неверный результат

ЗдравствуйтеВызывая функцию GetSystemInfo из kernel32 через p/invoke

252
Объявление пространств имен в c#?

Объявление пространств имен в c#?

Всем приветПочему в данном примере:

252