'SetChatPermissions using pyTelegramBotAPI

I am trying to create a bot that will set chat permissions using pyTelegramBotAPI package but it returns an error when parameters are passed.

Could anyone help me with my code?

import os
import telebot

API_KEY = os.environ['API_KEY']
bot = telebot.TeleBot(API_KEY)

@bot.message_handler(commands=["ro"])
def read_only(message):
  bot.set_chat_permissions(message.chat.id, {"can_send_messeges":False})

bot.polling()

Errors:

Traceback (most recent call last): File "main.py", line 38, in bot.polling() File "/home/runner/TeleBot/venv/lib/python3.8/site-packages/telebot/init.py", line 658, in polling self.__threaded_polling(non_stop, interval, timeout, long_polling_timeout, allowed_updates) File "/home/runner/TeleBot/venv/lib/python3.8/site-packages/telebot/init.py", line 720, in __threaded_polling raise e File "/home/runner/TeleBot/venv/lib/python3.8/site-packages/telebot/init.py", line 680, in __threaded_polling self.worker_pool.raise_exceptions() File "/home/runner/TeleBot/venv/lib/python3.8/site-packages/telebot/util.py", line 135, in raise_exceptions raise self.exception_info File "/home/runner/TeleBot/venv/lib/python3.8/site-packages/telebot/util.py", line 87, in run task(*args, **kwargs) File "main.py", line 36, in read_only bot.set_chat_permissions(message.chat.id, {"can_send_messeges":False}) File "/home/runner/TeleBot/venv/lib/python3.8/site-packages/telebot/init.py", line 1770, in set_chat_permissions return apihelper.set_chat_permissions(self.token, chat_id, permissions) File "/home/runner/TeleBot/venv/lib/python3.8/site-packages/telebot/apihelper.py", line 1026, in set_chat_permissions 'permissions': permissions.to_json() AttributeError: 'dict' object has no attribute 'to_json'



Solution 1:[1]

import os
from telebot import TeleBot
from telebot.types import ChatPermissions

API_KEY = os.environ['API_KEY']
bot = TeleBot(API_KEY)

@bot.message_handler(commands=["ro"])
def read_only(message):
  chp = ChatPermissions(can_send_messages=False)
  bot.set_chat_permissions(message.chat.id, permissions=chp)

bot.polling()

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 hoosnick