reddit-go

module
v0.0.0-...-f862058 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 23, 2018 License: MIT

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)
	}
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL