working token generation

This commit is contained in:
Alex Orid 2021-04-23 06:34:37 -04:00
parent 436f4a8193
commit a5482027f4
4 changed files with 34 additions and 10 deletions

View File

@ -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": ""
}

View File

@ -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():

View File

@ -4,5 +4,9 @@
"path": "."
}
],
"settings": {}
"settings": {
"cSpell.words": [
"unlisten"
]
}
}

View File

@ -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()