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 шт):
Чтобы получить 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 или любую другую функцию для вывода результата.