Создание twitch irc bot (ошибка авторизации входа)

57
3

Я использую Python 2.7, и я пытаюсь создать IRC-бот для подергивания, но у меня проблема. Я создал бота в других IRC, таких как "webchat.freenode.net", и все было нормально. Мой код для подергивания:

import time
import socket

HOST = "irc.twitch.tv"
PORT = 6667
BOTNICK = "thebot"
PASSWORD = "oauth:nph788dap10fu6ozlzv1b32fzm4r8q"
CHAN = "#fordotis10"

irc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
irc.connect((HOST, PORT))
irc.setblocking(False)
time.sleep(1)

irc.send("PASS "+PASSWORD+"\r\n")

time.sleep(1)

irc.send("USER "+BOTNICK+" "+BOTNICK+" "+BOTNICK+" :I AM BOT!\r\n")

time.sleep(1)

irc.send("NICK "+BOTNICK+"\r\n")
time.sleep(1)

irc.send("JOIN "+CHAN+"\r\n")

text= ""
while 1:
try:
text = irc.recv(1024)
print text
except Exception:
pass
if text.find("PING")!=-1:
irc.send("PONG "+text.split()[1]+"\r\n")

С помощью этого кода я получаю следующую ошибку:

: tmi.twitch.tv УВЕДОМЛЕНИЕ *: Ошибка авторизации входа в систему

Что мне не хватает?

спросил(а) 2017-01-12T22:32:00+03:00 3 года, 9 месяцев назад
1
Решение
58

Наконец, я нашел проблему с моим кодом! Итак, я напишу шаги по созданию ботинка twitch двумя способами!

Первый путь:

Вы должны создать учетную запись для подергивания

import socket
import re

HOST = "irc.twitch.tv"

PORT = 6667

NICK = "botname" #The account Name

PASS = "The password here" #http://www.twitchapps.com/tmi/

CHAN = "#Channel"

s = socket.socket()

s.connect((HOST, PORT))

s.send("PASS {}\r\n".format(PASS))

s.send("NICK {}\r\n".format(NICK))

s.send("JOIN {}\r\n".format(CHAN))

while True:
resp = s.recv(1024)
print resp
if resp == "PING :tmi.twitch.tv\r\n":
s.send("PONG :tmi.twitch.tv\r\n")
if resp.find("hi")!=-1:
s.send("PRIVMSG "+CHAN+" :HELLO\r\n")

resp = ""

Второй способ:

Я нашел pytwitcherapi, вы можете прочитать документацию по адресу: http://pytwitcherapi.readthedocs.io/en/latest/

import pytwitcherapi
import time
import webbrowser
import threading
import queue

session = pytwitcherapi.TwitchSession()

url = session.get_auth_url()

session.start_login_server()

webbrowser.get("C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s").open(url) #OAuth generator

while not session.authorized:
time.sleep(1)

time.sleep(2)

print "Authorized"

session.shutdown_login_server()

channel = session.get_channel("ChannelName")

client = pytwitcherapi.IRCClient(session,channel)

t = threading.Thread(target = client.process_forever)
t.start()

print "connected"

while True:
try:
m = client.messages.get(False)
if m.text == "!ping":
client.send_msg("pong!")
if m.text =="hey":
client.send_msg("Hey You!")
except queue.Empty:
pass

Надеюсь, все это поможет вам!

ответил(а) 2017-01-18T20:32:00+03:00 3 года, 9 месяцев назад
41

Из того, что я могу сказать, используя эту страницу, HOST = "irc.twitch.tv" должен быть HOST = irc.chat.twitch.tv".

ответил(а) 2017-01-12T23:09:00+03:00 3 года, 9 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема