Я пытаюсь написать простую программу, используя пакет golang.org/x/oauth2. Но я не могу обменять код на токен доступа. Следующая ошибка немного вводит в заблуждение, так как говорит, что использовался код авторизации, но я вижу новый код каждый раз, когда вызываю диалог входа в систему. Я новичок в golang, и я мог бы сделать основную ошибку, любые указатели были бы очень полезны :)
    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)
Я получил следующую ошибку из последнего запроса get -
{"error": {"message": "Этот код авторизации был использован.", "type": "OAuthException", "code": 100}}
Я следую этим двум руководствам - поток входа в Facebook - https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/v2.2
Последний документ от goauth - https://godoc.org/golang.org/x/oauth2
