Загрузка...

Vknet bot

Thread in C# created by Minin_inactive4471240 Feb 19, 2022. 402 views

  1. Minin_inactive4471240
    Minin_inactive4471240 Topic starter Feb 19, 2022 3 Sep 5, 2021
    Создал бота, теперь нужно сделать кнопки, для быстрых сообщений боту. Перерыл много источников, но ничего не нашёл. Помогите добавить кнопки для бота
     
  2. Madness
    Madness Feb 19, 2022 Banned 2224 Dec 23, 2019
    1. Minin_inactive4471240 Topic starter
      Madness, всё равно ничего не дало, можешь скинуть прямой линк на добавление кнопок
    2. Minin_inactive4471240 Topic starter
      Madness, всё равно ничего не дало, можешь скинуть прямой линк на добавление кнопок
  3. Обменник
  4. утин
    утин Feb 19, 2022 5 Nov 13, 2019
    тебе нужны Inline кнопки?
     
    1. View previous comments (6)
    2. утин
      vtlstolyarov, у него вместо сообщения null приходит
    3. vtlstolyarov
      утин, Может вместо тела сообщения а не вместо сообщения, а он его в нижний регистр тут же пытается загнать без проверки, я там ниже отписался куском кода
    4. утин
      vtlstolyarov, у него именно в сообщении null летит
      [IMG]
  5. Minin_inactive4471240
    Minin_inactive4471240 Topic starter Feb 19, 2022 3 Sep 5, 2021
    Code

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using VkNet;
    using VkNet.Model.RequestParams;
    using VkNet.Enums.Filters;
    using VkNet.Model;
    using VkNet.Enums.SafetyEnums;
    using VkNet.Abstractions;
    using VkNet.Model.Keyboard;
    using System.Threading;

    namespace zkz
    {
    internal class Program
    {
    public static VkApi api = new VkApi();
    static void Main(string[] args)
    {

    api.Authorize(new ApiAuthParams() { AccessToken = "token" });

    while (true)
    {
    WorkStatus();
    KeyboardBuilder board = new KeyboardBuilder(isOneTime: false);
    var s = api.Groups.GetLongPollServer(id Группы);
    var poll = api.Groups.GetBotsLongPollHistory(new BotsLongPollHistoryParams() { Server = s.Server, Ts = s.Ts, Key = s.Key, Wait = 25 });
    if (poll?.Updates == null)
    {
    continue;
    }


    foreach(var a in poll.Updates)
    {
    if (a.Type == GroupUpdateType.MessageNew)
    {
    string userMessage = a.Message.Body.ToLower();
    Console.WriteLine(userMessage);
    long? userId = a.Message.UserId;
    if (userMessage == "начать")
    {
    SendMessage("Приветствую, здесь мы платим за вашу верификацию на официальных сайтах!⭐ Отзывы: vk.com / topic - 208619546_48060903✅ Вы возвращены в главное меню!", userId);
    }
    }
    }
    }



    }
    public static void SendMessage(string message, long? userID)
    {
    Random rn = new Random();
    api.Messages.Send(new MessagesSendParams
    {
    RandomId = rn.Next(),
    UserId = userID,
    Message = message
    });

    }

    public static void WorkStatus()
    {

    Console.WriteLine("Работает");
    Thread.Sleep(10000);

    }

    }
    }

     
    1. View previous comments (6)
    2. vtlstolyarov
      утин, а ты запусти и удивишься что теперь оно не падает с NullReferenceException
    3. vtlstolyarov
      Minin_inactive4471240, это потому что там пустое сообщение, удивительно, да?
    4. утин
      vtlstolyarov, так он же не шлет пустое сообщение...
  6. r3xq1
    r3xq1 Feb 23, 2022 53 Jul 27, 2018
    Короче, вот с соседнего борда, думаю разберёшься чо не так.
    C#
    using System;
    using System.Collections.Generic;
    using System.Threading;
    using VkNet;
    using VkNet.Enums.SafetyEnums;
    using VkNet.Model;
    using VkNet.Model.Keyboard;
    using VkNet.Model.RequestParams;
    //подключаем нужные библиотеки
    namespace smm
    {
    class Program
    {
    static void Main(string[] args)
    {
    var api = new VkApi(); //создаём объект для работы с ап
    api.Authorize(new ApiAuthParams
    {
    AccessToken = "0b8e8ae40618187f98aef8ee1f13d3e7555d8fad25d6015ca96dd3f2de4bce6f2edd36de1b4127d0f" //токен сюда
    });
    while (1 > 0) //бесконечный цикл
    {
    var dialogs = api.Messages.GetConversations(new GetConversationsParams() //получаем обновления в нашей группе
    {
    Filter = VkNet.Enums.SafetyEnums.GetConversationFilter.Unread //в частности, новые сообщения
    });
    if (Convert.ToInt16(dialogs.UnreadCount) > 0) //если есть новые сообщения - отвечаем на них
    {
    var keyboard = new MessageKeyboard //господа, я решил добавить клавиатуру,
    { //вы можете удалить этот var keyboard, пофигу
    Buttons = new List<List<MessageKeyboardButton>>
    {
    new List<MessageKeyboardButton>
    {
    new MessageKeyboardButton
    {
    Action = new MessageKeyboardButtonAction
    {
    Type = KeyboardButtonActionType.Text, //Тип кнопки клавиатуры
    Label = "Приветик!", //Надпись на кнопке
    },
    Color = KeyboardButtonColor.Default //Цвет кнопки
    }
    }
    }
    }; // }; <-заканчиваем описывать нашу клавиатуру на последней скобке
    string lastmessage = dialogs.Items[0].LastMessage.Text; //последнее сообщение
    long peer_id = dialogs.Items[0].Conversation.Peer.Id; //айди чата
    string bot_answer = "yes, I am.";
    api.Messages.Send(new MessagesSendParams()
    {
    PeerId = peer_id,
    Message = bot_answer,
    RandomId = new Random().Next(minValue: 0, maxValue: 10000), //очень важная строка, хуй вы че без нее сделаете
    Keyboard = keyboard //если клавиатура не нужна - удалите этот параметр
    });
    }
    Thread.Sleep(1000); //останавливаемся на секунду, просто чтобы не душить вк
    }
    }
    }
    }
     
Top
Loading...