Сбой подключения к Twitch IRC без веской причины в Python

Я сейчас пытаюсь читать сообщения кошки по каналам Twitch. Для этого я прочитал несколько руководств и узнал, что он должен был пройти через IRC Twitch. Затем я нашел несколько строк простого кода.

import socket
import string

HOST="irc.twitch.tv"
PORT=6667
NICK="TwitchUsername"
IDENT="TwitchUsername"
REALNAME="TwitchUsername"
CHANNEL="#ChannelNameHere"
PASSWORD="OAuth Password here" #From http://twitchapps.com/tmi/
readbuffer=""

s=socket.socket( )
s.connect((HOST, PORT))
s.send("PASS %s\r\n" % PASSWORD)
s.send("NICK %s\r\n" % NICK)
s.send("USER %s %s bla :%s\r\n" % (IDENT, HOST, REALNAME))
s.send("JOIN %s\r\n" % CHANNEL)

while 1:
    readbuffer=readbuffer+s.recv(1024)
    temp=string.split(readbuffer, "\n")
    readbuffer=temp.pop( )

    for line in temp:
        line=string.rstrip(line)
        line=string.split(line)
        if len(line) > 3:
            print line
        if(line[0]=="PING"):
            s.send("PONG %s\r\n" % line[1])

Однако проверка подлинности не выполняется, как запланировано, так как я получаю следующее сообщение:

[':tmi.twitch.tv', 'NOTICE', '*', ':Login', 'unsuccessful']

Я использую действующий пароль чата OAuth и не вижу причин, которые оправдывают этот сбой. У вас также есть ошибка при попытке с вашим именем пользователя? Или у вас есть представление о проблеме, пожалуйста?

2 ответа

Ваш пароль OAuth должен быть отправлен как:

PASS oauth:twitch_oauth_token

Это означает, что если вы вводите свой токен в переменную PASSWORD без префикса oauth:, вы должны изменить строку прохода следующим образом:

s.send("PASS oauth:%s\r\n" % PASSWORD)

Я видел то же самое :tmi.twitch.tv NOTICE * :Error logging in,

Как отмечено в файле readme, "Ваш ник должен быть вашим именем пользователя Twitch в нижнем регистре".

Моя проблема не делала NICK точно мое искаженное имя пользователя в нижнем регистре (не очень информативное уведомление. Так что, надеюсь, это сэкономит кому-то еще некоторое время...).

Другие вопросы по тегам