Сбой подключения к 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
точно мое искаженное имя пользователя в нижнем регистре (не очень информативное уведомление. Так что, надеюсь, это сэкономит кому-то еще некоторое время...).