123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- package main
- import (
- "bufio"
- "fmt"
- "io"
- "log"
- "os"
- "time"
- "github.com/nicklaw5/helix"
- )
- func SetTwitchKeyEnvVariable() {
- tk, err := os.Open("X")
- if err != nil {
- log.Println(err)
- os.Exit(1)
- }
- tkbyte, err := io.ReadAll(tk)
- if err != nil {
- log.Println(err)
- os.Exit(1)
- }
- os.Setenv("TWITCH_KEY", "oauth:"+string(tkbyte))
- }
- func RenewTokensLoop() {
- defer func() {
- r := recover()
- if r != nil {
- log.Println(r)
- }
- monitor <- 7
- }()
- for {
- RenewTokens()
- time.Sleep(1 * time.Hour)
- }
- }
- func RenewTokens() error {
- file, err := os.Open("XR")
- if err != nil {
- log.Println(err)
- return err
- }
- defer file.Close()
- scanner := bufio.NewScanner(file)
- scanner.Scan()
- refreshtoken := scanner.Text()
- if err := scanner.Err(); err != nil {
- log.Println(err)
- return err
- }
- client, err := helix.NewClient(&helix.Options{
- ClientID: os.Getenv("CLIENT_ID"),
- ClientSecret: os.Getenv("CLIENT_SECRET"),
- })
- if err != nil {
- log.Println("ERROR MAKIGN NEW HELIX CLIENT")
- log.Println(err)
- return err
- }
- resp, err := client.RefreshUserAccessToken(refreshtoken)
- if err != nil {
- log.Println("ERROR REFRESHING CREDENTIALS")
- log.Println(err)
- return err
- }
- os.Remove("X")
- keyFile, err := os.Create("X")
- if err != nil {
- log.Println(err)
- return err
- }
- fmt.Println("RESP:", resp.Data.AccessToken)
- if resp.Data.AccessToken == "" {
- os.Setenv("TWITCH_KEY", "oauth:"+refreshtoken)
- return nil
- }
- keyFile.WriteString(resp.Data.AccessToken)
- fmt.Println("TOKEN: ", "oauth:"+resp.Data.AccessToken)
- os.Setenv("TWITCH_KEY", "oauth:"+resp.Data.AccessToken)
- keyFile.Close()
- os.Remove("XR")
- refreshFile, err := os.Create("XR")
- if err != nil {
- log.Println(err)
- return err
- }
- refreshFile.WriteString(resp.Data.RefreshToken)
- refreshFile.Close()
- return nil
- }
- func MakeNewToken() {
- client, err := helix.NewClient(&helix.Options{
- ClientID: os.Getenv("CLIENT_ID"),
- ClientSecret: os.Getenv("CLIENT_SECRET"),
- RedirectURI: "http://localhost:3000",
- })
- if err != nil {
- log.Println("ERROR MAKIGN NEW HELIX CLIENT")
- log.Println(err)
- return
- }
- // token := client.GetUserAccessToken()
- urlP := new(helix.AuthorizationURLParams)
- urlP.Scopes = append(urlP.Scopes, "channel:bot", "chat:edit", "chat:read", "user:bot", "user:read:chat", "user:write:chat", "whispers:read", "whispers:edit")
- urlP.ResponseType = "token"
- authUrl := client.GetAuthorizationURL(urlP)
- fmt.Println(authUrl)
- // resp, err := client.RequestUserAccessToken("ABCDDD")
- // fmt.Println(err)
- // fmt.Println(resp)
- // fmt.Println(resp.Data.AccessToken)
- }
|