mi-v1/cmd/mi/patreon.go

39 lines
799 B
Go

package main
import (
"context"
"time"
"golang.org/x/oauth2"
"gopkg.in/mxpv/patreon-go.v1"
)
func makePatreon() (*patreon.Client, error) {
config := oauth2.Config{
ClientID: *patreonClientID,
ClientSecret: *patreonClientSecret,
Endpoint: oauth2.Endpoint{
AuthURL: patreon.AuthorizationURL,
TokenURL: patreon.AccessTokenURL,
},
Scopes: []string{"users", "pledges-to-me", "my-campaign"},
}
token := oauth2.Token{
AccessToken: *patreonAccessToken,
RefreshToken: *patreonRefreshToken,
// Must be non-nil, otherwise token will not be expired
Expiry: time.Now().Add(-24 * time.Hour),
}
tc := config.Client(context.Background(), &token)
client := patreon.NewClient(tc)
_, err := client.FetchUser()
if err != nil {
return nil, err
}
return client, nil
}