Categorygithub.com/jleagle/reddit-go
module
0.0.0-20180523170313-f86205897a5e
Repository: https://github.com/jleagle/reddit-go.git
Documentation: pkg.go.dev

# README

reddit-go

go get github.com/Jleagle/reddit-go/reddit

Create a client
var client = reddit.GetClient(
	os.Getenv("API_CLIENT"),
	os.Getenv("API_SECRET"),
	os.Getenv("AUTH_CALLBACK_URL"),
	os.Getenv("UNIQUE_USER_AGENT"),
)
Send the user to a login page
func LoginHandler(w http.ResponseWriter, r *http.Request) {

	u, state := client.Login([]reddit.AuthScope{reddit.ScopeRead}, false, "")

	setToSession("state", state)

	http.Redirect(w, r, u, 302)
}
Retrieve a code and swap it for a token to store
func LoginCallbackHandler(w http.ResponseWriter, r *http.Request) {

	errStr := r.URL.Query().Get("error")
	if errStr != "" {
		fmt.Println(errStr)
	}

	state := getFromSession("state")

	if state != r.URL.Query().Get("state") {
		fmt.Println(errors.New("invalid state"))
	}

	tok, err := client.GetToken(r)
	if err != nil {
		fmt.Println(err)
	}

	setToSession("token", tok)

	http.Redirect(w, r, "/", 302)
}

Make an API call

func ListingHandler(w http.ResponseWriter, r *http.Request) {

	tok := getFromSession("tok")

	client.SetToken(tok)

	posts, err := client.GetListing(reddit.ListingOptions{})
	if err != nil {
		fmt.Println(err)
	}
}

# Packages

No description provided by the author