Меню сайта

На главную

Исходные коды
Программное обеспечение
Партнёрка
Разработка под заказ
Рекламные услуги
Остальные
Новости
Обновления у ботов
Команды у ботов
Super Petukh
Сергей Беляков ВК
Сергей Беляков Telegram
Павел Пазик
Леонид Белкин
Марина Маляева
Роман Шеннис
Павел Письков
Андрей Марков
Иван Единоросов
Александр Голенков
Другие
Партнёрские проекты
Railway Archive

- сайт от Студии.

All Stickers

- вся информация о стикерах в ВК.

News Transport

- новости с общественным транспортом.

Мухосранский вестник

- авторские истории относительно республики Мухосранции.

ID: 191
Как сделать вывод виджетов через python скрипт
29
Это картинка
Инструкция с картинками
Теги:
other_article
Дата редактирования:
2022-05-19 23:16:21
Вложения
widgets_update.py
Вся загвоздка подключения вывода виджетов в группах (что послужило для написания этой инструкции) является в необходимости получить специальный токен приложения для работы через метод обновления информации (https://dev.vk.com/method/appWidgets.update).

Как говорится документации метода помимо необходимого токена в метод обязательно передавать тип виджета и его код. В этом примере будет взят табличный виджет из документации. Но сперва начнём с токена:

Если вызывать метод с токена пользователя или сообщества (которые получаются для работы ботов), то метод будет выдавать ошибку: vk_api.exceptions.ApiError: [15] Access denied: method available only for community applications

И это стало причиной тратить много времени на чтение множества страниц ненужной (для данной задачи) документации вк чтобы найти ответ на вопрос где получать этот пресловутый токен. Пройдя множество страниц этой документации из всех ссылок документации данного метода (верная цепочка https://dev.vk.com/api/community-apps-widgets/getting-started --> https://dev.vk.com/bridge/VKWebAppGetCommunityToken и в самом низу нужная ссылка...) находим нужную ссылку:

https://vk.com/away.php?to=https://vk.cc/bZfqzK

Картинка 1. Приложение получения токена для вызова методов обновления виджета



В данном приложении не трогаем число в поле app_id (число остается данного приложения, никаких id своих приложений указывать не надо, и создавать их не нужно... У меня чтобы это понять ушло много времени и без результата, так как то свое приложение не добавлялось сперва в группу, то токен не получался и т.д. ...), в поле group_id указываем нужное сообщество а в поле scope указываем app_widget нажимаем кноп отправить и подтверждаем это. После этого вуаля нужный токен! (Токен хранится в значении ключа "access_token").

Затем добавляем это же приложение в свою группу. Добавить можно по этой ссылке https://vk.com/add_community_app.php?aid=6909581. (Про то что его можно добавлять в группу в прочитанной документации не было и слова, и в каталоге приложений тоже не найдено было, в итоге добавлено через метод тыка и подстановок в ссылку, на что тоже было затрачено время).

После добавления приложения в сообщество теперь можно обновлять скриптом виджеты!

Проверяем что всё работает, запускаем скрипт с незначительно измененным примером виджета из документации (оригинальный пример не работает из-за недоступности картинок и необходимости подставить свои ссылки).

Картинка 2. Простенький код вызова метода обновления виджета для проверки что всё сделано верно. Код представлен в файле в начале статьи



Возможная ошибка кода (vk_api.exceptions.ApiError: [12] Unable to compile code: ';' expected, ' in line 1) в примере исправлена. (Возникает из-за отсутствия в питоне ; а ведь нам надо составлять запросы внутри метода на JavaSсript или ActionScript).


Картинка 3. Результат работы скрипта, виджет появился



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



На всякий случай немного документации по типам виджетов:
Коды виджетов https://dev.vk.com/api/community-apps-widgets/getting-started
Типы виджетов: https://dev.vk.com/reference/objects/app-widget

Рекомендации

Это картинка
ID: 44
1069
Описание команд и особенностей работы бота Super Petukh
Дата: 2022-05-28 22:52:31
Это картинка
ID: 204
23
Важное обновление после огромного перерыва.
Дата: 2022-09-15 14:28:47