连接到 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 获取聊天消息参数?

Twitch IRC 聊天机器人成功连接但未检测到命令

PircBot 未在 twitch 聊天中发送消息

与连接到同一个公共热点的所有用户聊天的 Android 聊天应用程序

检查 Twitch.tv 流是不是在线并使用 Pircbot 接收观众计数

无法使用 xmpphp 连接到 Facebook 聊天