Open Firerazer opened 4 years ago
Hello again @Firerazer!
We are currently not aware of any problems with the bot authentication.
You need to perform the following steps:
observer = Observer('Nick', 'oauth:abcdefghijklmnopqrstuvwxyz0123')
observer.start()
Maybe you can provide additional information to your problem?
Thanks!
Additional information can also be found on our wiki.
I wait for my programmer return with your instructions. Thanks for the feedback
By the way, you know that I find nowhere in your wiki the link you have provided me?...
Moreover, after providing the oauth token, we were trying to run this: observer = Observer('RedCircuitBot', 'oauth:**') observer.start() observer.join_channel('Spectre860') observer.send_message('Hello', 'Spectre860') observer.leave_channel('Spectre860') observer.stop()
nothing trigger in the channel, we cannot see the bot logging in the chat server side, no error appearing
OAuth token was 25minutes old at the test time. Obtained from your provided website, with the bot account connected and accepting the connection. Structure of the oauth code is mixing letters and numbers From twitch side, the developer code is not mentioning your link, but more a complete request on twitch side: https://dev.twitch.tv/docs/authentication/getting-tokens-oauth/
Hey @Firerazer,
thanks for getting back to us.
The link to the Password Generator can be found in our wiki for writing a greeter bot (the link I provided above) or at the official Twitch site within the IRC guide.
I looked into the code sample you posted above and found the solution to your problem.
join_channel
takes in the channel name. What you are providing is the display name. Usually the channel name is just the lowercase version of the display name (shown in the URL, e.g. in my case https://www.twitch.tv/pythooonuser
). The display name is arbitrary (as far as I know) and can be changed on Twitch side. However, the channel name remains the same.
In my case PythooonUser
does not work, however, pythooonuser
does work.
Please let me know if that solved your issue!
Good evening, Thanks for your help. We were successfully having the bot connecting to 3 different chats at the same time for doing echo messages. The problem is that when executing this, the console is blocked and only way to exit properly is to kill the server and restart it. This tho block us to use this bot in a clean way to handle our commands. We are using Python3 on a Win machine, with a plan to run once working on a linus server.
Hey @Firerazer,
glad to hear you got the bot working now.
I'm not exactly sure what you are referring to with your question "to use the bot in a clean way". Please have a look at our code example for a working bot.
import time
from twitchobserver import Observer
with Observer('TwitchChatBot', 'oauth:abcdefghijklmnopqrstuvwxyz0123') as observer:
observer.join_channel('channel')
while True:
try:
for event in observer.get_events():
if event.type == 'TWITCHCHATJOIN' and event.nickname != 'TwitchChatBot':
observer.send_message('🍺 Welcome {}!'.format(event.nickname), event.channel)
time.sleep(1)
except KeyboardInterrupt:
observer.leave_channel('channel')
break
In principle you can let the bot run in a main event loop, that is the while True:
part. In this loop you can listen to the KeyboardInterrupt
event (which is Ctrl+C
), so you can gracefully exit the bot by leaving channels and cleaning-up any relevant things.
If you want to let the bot somehow run in the background then I'm not exactly sure how to do that. I guess there is a python
way of running scripts in the background or redirecting the scripts output to dev/null
on *unix systems.
Ctrl-C doesn't exit gracefully, I normally see a few lines of crashdump and it hangs the command window. I had confirmed the Keyboard Interrupt was Ctrl-C. Ctrl-C with your basic send message example does the same behavior, inserting observer.stop() was the only way I could get it to exit cleanly on it's own. I'm not very familiar with Python so I was doing research and thus didn't get back sooner. I was thinking it was something I was missing.
Hey @spectreGIT!
I don't know what you mean with your basic send message example, but I just used the above posted code taken from the wiki and I get no error messages when exiting using Ctrl+C
.
There shouldn't be the need to call observer.stop()
as that is automatically called when leaving the while
loop. That is because we are using the with ... as
syntax here.
Sometimes it takes a while for the keyboard interrupt to take effect as observer.stop()
waits until every outgoing event is send.
Good day! Sorry for the delay, normal work taking priority over this ;) we have managed to find way to make it work as we want it to work. Nevertheless, we don't find 2 stuff:
Hey @Firerazer,
you can have a look at e.g. the userstate
event that provides a tag called mod
. May that be what you need?
Good morning/afternoon/evening, where ever you are located around the world.
We are trying to put in place your bots, and we are confused, to say the least. After several hours, we are not able to link the OAuth token you require to run your bot and the way twitch is providing the token. Do you have insights about this?
Best regards