Discord Bot контактное сообщение - PullRequest
0 голосов
/ 10 февраля 2019

Я немного новичок в разногласиях с ботом и питоном, поэтому у меня возникли небольшие проблемы с пониманием, где я ошибаюсь.По сути, я хочу, чтобы мой бот прикрепил сообщение.Я нашел документацию для кода Python, которая говорит, что использовать pin_message (), поэтому у меня есть:

if "pinm()" == message.content.lower():
   #to pin a message
   message.channel.pin_message(messageID)

, но я получаю следующую ошибку AttributeError: У объекта 'TextChannel' нет атрибута 'pin_message'

Когда я смотрю на документацию Discord, там написано: PUT /channels/ndomchannel.id‹/pins/ enjmessage.id}. Я не очень понимаю, как перевести это в код, поэтому у меня есть что-то вроде этого:

    if "pinm()" == message.content.lower():
        #to pin a message
        allPins = message.channel.pins(messageID)

но я получаю ошибку pins () принимает 1 позиционный аргумент, но 2 были даны.Источники, за которыми я следую:

https://discordapp.com/developers/docs/resources/channel#add-pinned-channel-message

https://discordpy.readthedocs.io/en/latest/api.html#message

Может кто-нибудь сказать мне, где я не так с этим?(

1 Ответ

0 голосов
/ 11 февраля 2019

Редактировать: Вы на самом деле используете , поэтому вам нужно сделать

msg_to_pin = await message.channel.get_message(int(messageID))
await msg_to_pin.pin()

Оригинал:

Вам нужно использовать Client.pin_message, передавая Message объект (не идентификатор).У вас часто уже есть объект сообщения, но в противном случае вам придется использовать Client.get_message, который требует, чтобы вы также знали канал, в котором находится сообщение.

msg_to_pin = await client.get_message(message.channel, messageID)
await client.pin_message(msg_to_pin)

Убедитесь, что у вашего бота есть manage_messages разрешение, или это не удастся.

...