package main import ( "fmt" "github.com/SevereCloud/vksdk/v2/api" "github.com/SevereCloud/vksdk/v2/api/params" "log" "os" "strconv" ) /* - json с конфигом - json с ID последних постов из групп Алгоритм: - Читаем айди последнего поста - Сохраняем в какую-нибудь переменную посты - Формируем письмо из постов - Отправляем письмо на почту - При успешной отправке записываем айди последнего поста в жсон */ func main() { // Init: Get token and group id from ENV token := os.Getenv("vktoken") //groupId, err := strconv.Atoi(os.Getenv("vkgroupid")) //if err != nil { // log.Fatal(err) //} // Init VK vk := api.NewVK(token) // Fill params for wallGet wallGetParams := params.NewWallGetBuilder() wallGetParams.Count(10) wallGetParams.Domain("podvalsound") wallGetParams.Extended(true) //wallGetParams.OwnerID(groupId) // Do WallGet posts, err := vk.WallGet(wallGetParams.Params) if err != nil { log.Fatal(err) } // Cycle through posts for _, item := range posts.Items { if !item.IsPinned { groupGetParams := params.NewGroupsGetByIDBuilder() groupGetParams.GroupID(strconv.Itoa(item.OwnerID * -1)) ownerName, err := vk.GroupsGetByID(groupGetParams.Params) if err != nil { log.Fatal(err) } fmt.Println("=====") fmt.Println("Group:") fmt.Println(ownerName[0].Name) fmt.Println("Text:") fmt.Println(item.Text) fmt.Println("Attach: ") // проходимся по аттачам если есть if item.Attachments != nil { //fmt.Println(item.Attachments) for _, attach := range item.Attachments { // если это фото - вытаскиваем урл photosObj := attach.Photo if photosObj.Sizes != nil { for _, photoSizeObj := range photosObj.Sizes { if photoSizeObj.Type == "y" { fmt.Println(photoSizeObj.URL) } } } } } } } }