This MR introduces several changes to support "web app" clients:
AuthCodeURL is a thin wrapper around oauth2.Config.AuthCodeURL for building URLs for requesting authorization from users.
Create a client and authorize it by exchanging code immediately after receiving it by providing WithWebAppCode option to the constructor.
OR
Refresh an existing access token with a refresh_token by creating a client with a WithWebAppRefresh option. This is handy in case you want to persist the refresh_token elsewhere and avoid requesting authorization from your uses repeatedly.
Please note, that in order to complete the authorization with a web app, you will also need to host a service receiving code-redirects from Reddit (see docs on redirect_uri), but at the moment it seems beyond the scope of this PR or this package, for that matter.
See unit tests for examples of how to use these options.
The changes to the packages API are minimal and are fully backwards-compatible:
New OAuth options are few and have self-descriptive names.
Script is the default AppType for a reddit client.
What little refactoring I did does not change the API (purely code style)
Note: @vartanbeno I figured this repo is no longer being maintained and I changed the export path to github.com/bevzzz/go-reddit/v2 in the go.mod because I wanted to use the updated version of the package in my other project. If you decide to merge this PR, please let me know and I will revert that change.
Related issue: https://github.com/vartanbeno/go-reddit/issues/44
Description
This MR introduces several changes to support "web app" clients:
AuthCodeURL
is a thin wrapper aroundoauth2.Config.AuthCodeURL
for building URLs for requesting authorization from users.code
immediately after receiving it by providingWithWebAppCode
option to the constructor. ORrefresh_token
by creating a client with aWithWebAppRefresh
option. This is handy in case you want to persist therefresh_token
elsewhere and avoid requesting authorization from your uses repeatedly.Please note, that in order to complete the authorization with a web app, you will also need to host a service receiving code-redirects from Reddit (see docs on
redirect_uri
), but at the moment it seems beyond the scope of this PR or this package, for that matter. See unit tests for examples of how to use these options.The changes to the packages API are minimal and are fully backwards-compatible:
Script
is the defaultAppType
for a reddit client.Note: @vartanbeno I figured this repo is no longer being maintained and I changed the export path to
github.com/bevzzz/go-reddit/v2
in thego.mod
because I wanted to use the updated version of the package in my other project. If you decide to merge this PR, please let me know and I will revert that change.