VK API - авторизация

у меня есть код в котором есть собранная ссылка на получение Code

get_code_url := fmt.Sprintf("https://oauth.vk.com/authorize?client_id=%s&display=page&redirect_uri=%s&scope=%s&response_type=code&v=5.131", clientID, redirectURI, scope)
    response, err := http.Get(get_code_url)
    if err != nil {
        log.Info("ERROR!: ")
        log.Info(err)
    }
    log.Info(response)

в документации вк написано

После успешной авторизации приложения браузер пользователя будет перенаправлен по адресу redirect_uri, указанному при открытии диалога авторизации. При этом код для получения ключа доступа code будет передан как GET-параметр:

REDIRECT_URI?code=7a6fa4dff77a228eeda56603b8f53806c883f011c40b72630bb50df056f6479e52a

как мне получить этот get параметр и вынести этот Code в отдельную переменную чтобы его можно было использовать ?


Ответы (1 шт):

Автор решения: hedgehogues

Чтобы получить GET параметры из урла, вы можете использовать функцию url.Parse из пакета net/url, а затем извлечь нужный параметр из объекта url.Values, который возвращается функцией Parse.

Например, чтобы получить параметр code из урла REDIRECT_URI?code=7a6fa4dff77a228eeda56603b8f53806c883f011c40b72630bb50df056f6479e52a, вы можете использовать следующий код:

package main

import (
    "net/url"
    "log"
)

func main() {
    redirectURI := "REDIRECT_URI?code=7a6fa4dff77a228eeda56603b8f53806c883f011c40b72630bb50df056f6479e52a"
    parsedURL, err := url.Parse(redirectURI)
    if err != nil {
        log.Fatal(err)
    }
    code := parsedURL.Query().Get("code")
    log.Println(code)
}

Этот код выведет

7a6fa4dff77a228eeda56603b8f53806c883f011c40b72630bb50df056f6479e52a

Примечание: в приведенном примере я использовал пакет log, чтобы вывести результат в консоль. Вы также можете использовать функцию fmt.Println или любую другую функцию для вывода результата.

→ Ссылка