Sto provando a scrivere un semplice programma utilizzando il pacchetto galang.org/x/oauth2. Ma non riesco a scambiare il codice per un token di accesso. Il seguente errore è un po 'fuorviante perché dice che il codice di autorizzazione è stato utilizzato ma vedo un nuovo codice ogni volta che richiamo la finestra di accesso. Sono nuovo di Galang e potrei essere facendo un errore di base, tutti i puntatori sarebbe veramente utile :)golang Autenticazione di Facebook utilizzando golang.org/x/oauth2
clientOptions, err = oauth2.New(
oauth2.Client("xxxxxx", "22222222222222"),
oauth2.RedirectURL("http://localhost:3000/auth/cb/fb2"),
oauth2.Scope("public_profile", "email", "user_friends"),
oauth2.Endpoint(
"https://www.facebook.com/dialog/oauth",
"https://graph.facebook.com/oauth/access_token",
),
)
func handleFBSetupOauth(w http.ResponseWriter, r *http.Request) {
url := clientOptions.AuthCodeURL("state", "online", "auto")
fmt.Printf("Visit the URL for the auth dialog: %v", url)
http.Redirect(w, r, url, http.StatusFound)
}
func handleFBOauthCB(w http.ResponseWriter, r *http.Request) (int, string) {
var err error
code := r.FormValue("code")
if code == "" {
return 500, "No code!"
}
fmt.Printf("code - %s", code)
t, err := clientOptions.NewTransportFromCode(code)
if err != nil {
log.Fatal(err)
}
client := http.Client{Transport: t}
url := "https://graph.facebook.com/oauth/access_token?client_id=xxxxxxx&redirect_uri=http://localhost:3000/auth/cb/fb2&client_secret=22222222&code=" + code + ""
resp, err := client.Get(url)
ottengo il seguente errore dell'ultima richiesta GET -
{ "errore": { "messaggio": "Questo codice di autorizzazione è stato utilizzato.", "type": "OAuthException", "codice": 100}}
seguo queste 2 guide - Facebook login flusso - https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/v2.2
Ultimo goauth doc - https://godoc.org/golang.org/x/oauth2
L'utilizzo del pacchetto OAuth2 non corrisponde l'API documentato https://godoc.org/golang.org/x/oauth2 !? – IanB
@padlar hai risolto questo? Stavo cercando la stessa risposta! –