在Python中没有充分理由连接到Twitch IRC失败了

时间:2014-02-19 20:56:27

标签: python sockets chat irc twitch

我目前正在尝试阅读邮件猫通道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 个答案:

答案 0 :(得分:0)

您的OAuth密码需要发送为:

PASS oauth:twitch_oauth_token

这意味着如果你在没有oauth:前缀的PASSWORD变量中输入你的令牌,你应该将传递线修改为:

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

答案 1 :(得分:0)

我看到了相同的:tmi.twitch.tv NOTICE * :Error logging in

如自述文件"Your nickname must be your Twitch username in lowercase"中所述。

我的问题不在于NICK我的twitch用户名是小写的(不是一个非常有用的通知。所以希望这能节省别人一些时间......)。