From a5482027f4afeeb4a843938a3b2df7ec8294f2c6 Mon Sep 17 00:00:00 2001 From: Alex Orid Date: Fri, 23 Apr 2021 06:34:37 -0400 Subject: [PATCH] working token generation --- .../credential_template_twitch.json | 6 ++-- credentials.py | 4 ++- python bot.code-workspace | 6 +++- standalone_twitch_pubsub.py | 28 +++++++++++++++---- 4 files changed, 34 insertions(+), 10 deletions(-) diff --git a/credential_templates/credential_template_twitch.json b/credential_templates/credential_template_twitch.json index 707ce23..f9d93f5 100644 --- a/credential_templates/credential_template_twitch.json +++ b/credential_templates/credential_template_twitch.json @@ -3,6 +3,8 @@ "helix": "Helix Client ID", "oauth": "token", "v5_client": "Client ID", - "pubsub client id": "", - "pubsub secret": "" + "pubsub_client_id": "", + "pubsub_secret": "", + "pubsub_AccessToken": "", + "pubsub_RefreshToken": "" } \ No newline at end of file diff --git a/credentials.py b/credentials.py index 206686d..50cad94 100644 --- a/credentials.py +++ b/credentials.py @@ -14,7 +14,7 @@ class Twitch_Credential(): # Helix ID = https://dev.twitch.tv/console/apps # Oauth = https://twitchapps.com/tmi/ # V5 Client ID = https://twitchtokengenerator.com/ - def __init__(self, username, helix, oauth, v5_client, pubsub_client_id, pubsub_secret): + def __init__(self, username, helix, oauth, v5_client, pubsub_client_id, pubsub_secret, pubsub_AccessToken, pubsub_RefreshToken): # super().__init__() self.username = username self.helix = helix @@ -22,6 +22,8 @@ class Twitch_Credential(): self.v5_client = v5_client self.pubsub_client_id = pubsub_client_id self.pubsub_secret = pubsub_secret + self.pubsub_AccessToken = pubsub_AccessToken + self.pubsub_RefreshToken = pubsub_RefreshToken class Discord_Credential(): diff --git a/python bot.code-workspace b/python bot.code-workspace index 876a149..edd4376 100644 --- a/python bot.code-workspace +++ b/python bot.code-workspace @@ -4,5 +4,9 @@ "path": "." } ], - "settings": {} + "settings": { + "cSpell.words": [ + "unlisten" + ] + } } \ No newline at end of file diff --git a/standalone_twitch_pubsub.py b/standalone_twitch_pubsub.py index ead08fd..78ceb10 100644 --- a/standalone_twitch_pubsub.py +++ b/standalone_twitch_pubsub.py @@ -6,6 +6,7 @@ import twitchAPI from twitchAPI.pubsub import PubSub from twitchAPI.twitch import Twitch from twitchAPI.types import AuthScope +from twitchAPI.oauth import UserAuthenticator from pprint import pprint from uuid import UUID @@ -16,11 +17,20 @@ class Twitch_Pubsub(): self.credential : credentials.Twitch_Credential() self.twitch : Twitch() self.pubsub: PubSub() + self.target_scope = [AuthScope.CHANNEL_READ_REDEMPTIONS] #Making setup function properly should make all of this run. def setup(self): self.twitch.authenticate_app([]) - self.twitch.set_user_authentication('my_user_auth_token', [AuthScope.WHISPERS_READ], 'my_user_auth_refresh_token') + + self.twitch.set_user_authentication(self.credential.pubsub_AccessToken, self.target_scope, self.credential.pubsub_RefreshToken) + + def get_tokens(self): + auth = UserAuthenticator(self.twitch, self.target_scope, force_verify=False) + token, refresh_token = auth.authenticate() + print(token) + print(refresh_token) + #self.twitch.set_user_authentication(token, self.target_scope, refresh_token) def start(self): self.pubsub = PubSub(self.twitch) @@ -28,19 +38,25 @@ class Twitch_Pubsub(): def next(self): user_id = self.twitch.get_users(logins=['my_username'])['data'][0]['id'] - uuid = self.pubsub.listen_whispers(user_id, self.callback_whisper) + #uuid = self.pubsub.listen_whispers(user_id, self.callback_whisper) + points = self.pubsub.listen_channel_points(user_id, self.callback_channelPoints) input('press ENTER to close...') - self.stop(uuid) + self.stop(points) + #self.stop(uuid) - def stop(self, uuid): - self.pubsub.unlisten(uuid) + def stop(self, thing): + self.pubsub.unlisten(thing) self.pubsub.stop() def callback_whisper(self, uuid: UUID, data: dict) -> None: print('got callback for UUID ' + str(uuid)) pprint(data) + def callback_channelPoints(self, uuid: UUID, data: dict) -> None: + print("Channel Point Redemption") + print('got callback for UUID ' + str(uuid)) + pprint(data) if __name__ == "__main__": testModule = Twitch_Pubsub() @@ -49,7 +65,7 @@ if __name__ == "__main__": credentials_manager.load_credentials() testModule.credential = credentials_manager.find_Twitch_Credential(config.credentialsNickname) testModule.twitch = Twitch(testModule.credential.pubsub_client_id, testModule.credential.pubsub_secret) - + pprint(testModule.twitch.get_users(logins=['thecuriousnerd'])) testModule.setup() testModule.start() \ No newline at end of file