Что такое vk go com

Сегодняшняя статья будет посвящена разработке программы на Go, использующей API vk.com для авторизации и загрузки данных о пользователе.

Сейчас найти современный сервис, который бы не использовал авторизацию по OAuth практически невозможно. Существует большое количество сценариев использования этого протокола. Попробуем же написать простой клиент для работы с этой технологией на Go.

Сначала нужно создать приложение в разделе для разработчиков.

Важно указать правильные параметры проекта, для начала можно указать адрес сайта — localhost:8080 и базовый домен — localhost. Я тестировал его с помощью ngrok proxy, поэтому вводил сюда url, полученный из ngrok.

vk панель разработчика

После этого остается только указать Redirect URI — адрес, куда будет произведен редирект вместе с кодом полученным в результате авторизации. Для пробы можно указать localhost:8080/auth.

Новая рубрика: кто самый умный иностранец? Коммуналка Skyeng

image

Панель ВК настроена. Теперь можно перейти к программированию на Go.

Всю логику программы можно разделить на 3 части:

Настройки OAuth клиента и подключение html файлов.

Отображение шаблона с кнопкой для авторизации.

Обработка авторизации, сбор сведений из API ВКонтакте, передача их в темплейт.

Для авторизации Golang я выбрал стандартный package golang.org/x/oauth2. Он легок в конфигурации и достаточно гибок, чтобы подойти для использования в реальном приложении, а также содержит ссылки на API vk, чем обычно создатели пакетов программистов не балуют.

r := gin.Default() r.LoadHTMLGlob(«templates/*») conf := ClientID: os.Getenv(«CLIENT_ID»), ClientSecret: os.Getenv(«CLIENT_SECRET»), RedirectURL: os.Getenv(«REDIRECT_URL»), Scopes: []string<>, Endpoint: vkAuth.Endpoint, >

Далее при обращении к корню необходимо отрендерить template со вставленной в него ссылкой на авторизацию.

r.GET(«/», func(c *gin.Context) < url := conf.AuthCodeURL(«state», oauth2.AccessTypeOffline) // получаем URL для редиректа на OAuth API VK и передаем его в темплейт c.HTML(http.StatusOK, «index.html», gin.H< «authUrl»: url, >) >)

Еще по теме:  Как перенести товары с сайта в группу ВК

Последний шаг — подгрузка данных из социальной сети после авторизации. Для этого сначала нужно получить по авторизационному коду токен для доступа к API. После обратиться к API соцсети и получить информацию о текущем юзере. Я получаю лишь некоторые из полей user API, можно получить и множество других, для этого нужно добавить необходимые в структуру vk.RequestParams.fields.

r.GET(«/auth», func(c *gin.Context) < ctx := context.Background() // получаем код от API VK из квери стринга authCode := c.Request.URL.Query()[«code»] // меняем код на access токен tok, err := conf.Exchange(ctx, authCode[0]) if err != nil < log.Fatal(err) >// создаем клиент для получения данных из API VK client, err := vk.NewClientWithOptions(vk.WithToken(tok.AccessToken)) if err != nil < log.Fatal(err) >user := getCurrentUser(client) c.HTML(http.StatusOK, «auth.html», gin.H< «user»: user, >) >) func getCurrentUser(api *vk.Client) User < var users []User api.CallMethod(«users.get», vk.RequestParams< «fields»: «photo_400_orig,city», >, type User struct < ID int64 `json:»id»` FirstName string `json:»first_name»` LastName string `json:»last_name»` Photo string `json:»photo_400_orig»` City City `json:»city»` >type City struct

Так выглядит окно приложения после авторизации.

Как скачать видео из VK? ✅Спартак поможет )

golang authentication vk

Сделано. В данном приложении не много функционала, но оно вполне подойдет в качестве рабочего примера реализации oauth gin golang или golang vk api. Его можно добавить в какой-то из ваших существующих проектов для поддержки функционала авторизации с помощью ВК на golang.

Спасибо за чтение статьи, и пишите свои мысли по поводу темы в комментарии.

  • Разработка веб-сайтов
  • Программирование
  • Go

Источник: habr.com

Go Vk 1.0.4

Go Vk 1.0.4. Скриншот 1 Go Vk 1.0.4. Скриншот 2 Go Vk 1.0.4. Скриншот 3

Приложение отличное! Но сыроватенькое.
Добавьте:
— языки интерфейса (в частности Русский, Немецкий)
— при возврате назад (в приложение), чтобы не выходил вообще из него. Сделайте отдельную кнопку для выхода из Приложения.
— И что-то я не нашел функцию «Редактирование своего профиля»
— Ну и немножко приукрасте интерфейс.

Еще по теме:  Api id Вконтакте как получить

А в общем мне понравилось, только допилите до ума!

Источник: trashbox.ru

Использование OAuth и API VK в Go

Сегодняшняя статья будет посвящена разработке программы на Go, использующей API vk.com для авторизации и загрузки данных о пользователе.

Сейчас найти современный сервис, который бы не использовал авторизацию по OAuth практически невозможно. Существует большое количество сценариев использования этого протокола. Попробуем же написать простой клиент для работы с этой технологией на Go.

Сначала нужно создать приложение в разделе для разработчиков.

Важно указать правильные параметры проекта, для начала можно указать адрес сайта — localhost:8080 и базовый домен — localhost. Я тестировал его с помощью ngrok proxy, поэтому вводил сюда url, полученный из ngrok.

vk панель разработчика

После этого остается только указать Redirect URI — адрес, куда будет произведен редирект вместе с кодом полученным в результате авторизации. Для пробы можно указать localhost:8080/auth.

image

Панель ВК настроена. Теперь можно перейти к программированию на Go.

Всю логику программы можно разделить на 3 части:

Настройки OAuth клиента и подключение html файлов.

Отображение шаблона с кнопкой для авторизации.

Обработка авторизации, сбор сведений из API ВКонтакте, передача их в темплейт.

Для авторизации Golang я выбрал стандартный package golang.org/x/oauth2. Он легок в конфигурации и достаточно гибок, чтобы подойти для использования в реальном приложении, а также содержит ссылки на API vk, чем обычно создатели пакетов программистов не балуют.

r := gin.Default() r.LoadHTMLGlob(«templates/*») conf := ClientID: os.Getenv(«CLIENT_ID»), ClientSecret: os.Getenv(«CLIENT_SECRET»), RedirectURL: os.Getenv(«REDIRECT_URL»), Scopes: []string<>, Endpoint: vkAuth.Endpoint, >

Далее при обращении к корню необходимо отрендерить template со вставленной в него ссылкой на авторизацию.

r.GET(«/», func(c *gin.Context) < url := conf.AuthCodeurl(//h.amazingsoftworks.com/»state», oauth2.AccessTypeOffline) // получаем URL для редиректа на OAuth API VK и передаем его в темплейт c.HTML(http.StatusOK, «index.html», gin.H< «authUrl»: url, >) >)

Еще по теме:  Как добавить бота в беседу ВК

Последний шаг — подгрузка данных из социальной сети после авторизации. Для этого сначала нужно получить по авторизационному коду токен для доступа к API. После обратиться к API соцсети и получить информацию о текущем юзере. Я получаю лишь некоторые из полей user API, можно получить и множество других, для этого нужно добавить необходимые в структуру vk.RequestParams.fields.

r.GET(«/auth», func(c *gin.Context) < ctx := context.Background() // получаем код от API VK из квери стринга authCode := c.Request.URL.Query()[«code»] // меняем код на access токен tok, err := conf.Exchange(ctx, authCode[0]) if err != nil < log.Fatal(err) >// создаем клиент для получения данных из API VK client, err := vk.NewClientWithOptions(vk.WithToken(tok.AccessToken)) if err != nil < log.Fatal(err) >user := getCurrentUser(client) c.HTML(http.StatusOK, «auth.html», gin.H< «user»: user, >) >) func getCurrentUser(api *vk.Client) User < var users []User api.CallMethod(«users.get», vk.RequestParams< «fields»: «photo_400_orig,city», >, type User struct < ID int64 `json:»id»` FirstName string `json:»first_name»` LastName string `json:»last_name»` Photo string `json:»photo_400_orig»` City City `json:»city»` >type City struct

Так выглядит окно приложения после авторизации.

golang authentication vk

Сделано. В данном приложении не много функционала, но оно вполне подойдет в качестве рабочего примера реализации oauth gin golang или golang vk api. Его можно добавить в какой-то из ваших существующих проектов для поддержки функционала авторизации с помощью ВК на golang.

Спасибо за чтение статьи, и пишите свои мысли по поводу темы в комментарии.

  • Разработка веб-сайтов
  • Программирование
  • Go

Источник: h.amazingsoftworks.com

Рейтинг
( Пока оценок нет )
Загрузка ...