连接到 twitch 聊天 python
Posted
技术标签:
【中文标题】连接到 twitch 聊天 python【英文标题】:Connecting to twitch chat python 【发布时间】:2014-02-18 06:13:35 【问题描述】:import time
import win32api, win32con
import socket #imports module allowing connection to IRC
import threading #imports module allowing timing functions
#sets variables for connection to twitch chat
bot_owner = 'TheMagicalCake'
nick = 'MagicalCakeBot'
channel = '#TheMagicalCake'
server = 'magicalcakebot.jtvirc.com'
password = '~redacted~'
irc = socket.socket()
irc.connect((server, 6667)) #connects to the server
#sends variables for connection to twitch chat
irc.send('PASS ' + password + '\r\n')
irc.send('USER ' + nick + ' 0 * :' + bot_owner + '\r\n')
irc.send('NICK ' + nick + '\r\n')
irc.send('JOIN ' + channel + '\r\n')
我正在尝试制作一个用于 twitch 聊天的机器人,但是当我运行此代码时,我收到错误消息,我正在使用适用于他们但不适用于我的其他人的代码
Traceback (most recent call last):
File "C:/Users/Owner/Desktop/TheMagicalCake", line 47, in <module>
irc.connect((server, 6667)) #connects to the server
File "C:\Python27\lib\socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
gaierror: [Errno 11004] getaddrinfo failed
【问题讨论】:
请告诉我您不是在为 twitchplayspokemon 创建垃圾邮件机器人... 不,我正在尝试制作类似于 twitchplayspokemon 的流 【参考方案1】:getaddrinfo failed
通常意味着您尝试连接的主机名无法解析为 IP 地址。在这种情况下,它可能意味着它不存在。
为什么?
当您传递socket.connect()
一个主机名而不是IP 地址时,它首先需要找到该主机名的IP 地址。它使用socket.getaddrinfo()
来执行此操作,它向DNS 服务器询问有关主机名的信息。事实证明,没有 DNS 服务器有此信息,因此对 getaddrinfo
的调用失败,因此出现错误消息。
如何连接到 Twitch 的 IRC
自从您的指南制作以来,连接到 Twitch 的 IRC 的过程似乎发生了一些变化。这是我设法做到的。
从TwitchApps 获取 OAuth 令牌 使用您的 twitch 用户名连接到irc.twitch.tv
,端口 6667。作为密码,使用 oauth:
加上您刚刚获得的 oauth 令牌。
加入您正在流式传输的频道。
【讨论】:
我正在使用我的 twitch 机器人的名称,就像他们在指南中所做的那样。我还尝试了我想从中流式传输的频道,该频道也不起作用。你知道正确的主机是什么吗? 我已经更新了我的帖子,内容似乎现在可行,您的指南似乎有点过时了。以上是关于连接到 twitch 聊天 python的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Python Twitch IRC Bot 获取聊天消息参数?
与连接到同一个公共热点的所有用户聊天的 Android 聊天应用程序