From 47345d2dbcc3665c22c5ba2c04b2cf43e76969dc Mon Sep 17 00:00:00 2001 From: SolidlSnake Date: Wed, 19 Apr 2017 22:13:08 +0300 Subject: [PATCH 1/9] Put actual version argument --- easyvk/vk.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/easyvk/vk.go b/easyvk/vk.go index 49578e9..b87c561 100644 --- a/easyvk/vk.go +++ b/easyvk/vk.go @@ -16,6 +16,7 @@ const apiURL = "https://api.vk.com/method/" // working with VK API. type VK struct { AccessToken string + Version string Account Account Fave Fave Photos Photos @@ -29,6 +30,7 @@ type VK struct { func WithToken(token string) VK { vk := VK{} vk.AccessToken = token + vk.Version = "5.63" vk.Account = Account{&vk } vk.Fave = Fave{&vk } vk.Photos = Photos{&vk } @@ -50,6 +52,7 @@ func (vk *VK) Request(method string, params map[string]string) ([]byte, error) { query.Set(k, v) } query.Set("access_token", vk.AccessToken) + query.Set("v", vk.Version) u.RawQuery = query.Encode() resp, err := http.Get(u.String()) From f4e52d20edf5629109684e52ffec3c7712c34563 Mon Sep 17 00:00:00 2001 From: SolidlSnake Date: Wed, 19 Apr 2017 22:13:57 +0300 Subject: [PATCH 2/9] Fave.getUsers update --- easyvk/fave-response.go | 15 ++++++++++----- easyvk/fave.go | 12 +++++------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/easyvk/fave-response.go b/easyvk/fave-response.go index 381e463..cf76214 100644 --- a/easyvk/fave-response.go +++ b/easyvk/fave-response.go @@ -1,11 +1,16 @@ package easyvk -// A FaveUsers describes a slice of users +// A FaveUsers describes a list of users // whom the current user has bookmarked. -type FaveUsers []struct { - FirstName string `json:"first_name"` - LastName string `json:"last_name"` - UID int `json:"uid"` +type FaveUsers struct { + Response struct { + Count int `json:"count"` + Items []struct { + ID int `json:"id"` + FirstName string `json:"first_name"` + LastName string `json:"last_name"` + } `json:"items"` + } `json:"response"` } // A FaveLinks describes a slice of links diff --git a/easyvk/fave.go b/easyvk/fave.go index 2ce1078..18e2fb9 100644 --- a/easyvk/fave.go +++ b/easyvk/fave.go @@ -12,24 +12,22 @@ type Fave struct { } // GetUsers returns a list of users whom the current user has bookmarked. -// Also this func return count of all bookmarked users. -func (f *Fave) GetUsers(offset, count uint) (FaveUsers, uint, error) { +func (f *Fave) GetUsers(offset, count uint) (FaveUsers, error) { params := map[string]string{ "offset": fmt.Sprint(offset), "count": fmt.Sprint(count), } resp, err := f.vk.Request("fave.getUsers", params) if err != nil { - return FaveUsers{}, 0, err + return FaveUsers{}, err } - nextResp, quantity, err := f.vk.ResponseWithCount(resp) var users FaveUsers - err = json.Unmarshal(nextResp, &users) + err = json.Unmarshal(resp, &users) if err != nil { - return FaveUsers{}, 0, err + return FaveUsers{}, err } - return users, quantity, nil + return users, nil } // GetLinks returns a list of links that the current user has bookmarked. From 74db44c54716563f88b853e3d7192e55595a0801 Mon Sep 17 00:00:00 2001 From: SolidlSnake Date: Wed, 19 Apr 2017 22:17:57 +0300 Subject: [PATCH 3/9] Fave.getPhotos update --- easyvk/fave-response.go | 41 +++++++++++++++++++++++------------------ easyvk/fave.go | 11 +++++------ 2 files changed, 28 insertions(+), 24 deletions(-) diff --git a/easyvk/fave-response.go b/easyvk/fave-response.go index cf76214..53aa7da 100644 --- a/easyvk/fave-response.go +++ b/easyvk/fave-response.go @@ -25,23 +25,28 @@ type FaveLinks []struct { ImageBig string `json:"image_big"` } -// A FavePhotos describes a slice of photos +// A FavePhotos describes a list of photos // that the current user has bookmarked. -type FavePhotos []struct { - AccessKey string `json:"access_key"` - Aid int `json:"aid"` - Created int `json:"created"` - Height int `json:"height"` - OwnerID int `json:"owner_id"` - Pid int `json:"pid"` - PostID int `json:"post_id,omitempty"` - Src string `json:"src"` - SrcBig string `json:"src_big"` - SrcSmall string `json:"src_small"` - SrcXbig string `json:"src_xbig"` - SrcXxbig string `json:"src_xxbig"` - SrcXxxbig string `json:"src_xxxbig,omitempty"` - Text string `json:"text"` - UserID int `json:"user_id"` - Width int `json:"width"` +type FavePhotos struct { + Response struct { + Count int `json:"count"` + Items []struct { + ID int `json:"id"` + AlbumID int `json:"album_id"` + OwnerID int `json:"owner_id"` + UserID int `json:"user_id"` + Photo75 string `json:"photo_75"` + Photo130 string `json:"photo_130"` + Photo604 string `json:"photo_604"` + Photo807 string `json:"photo_807"` + Photo1280 string `json:"photo_1280"` + Photo2560 string `json:"photo_2560"` + Width int `json:"width"` + Height int `json:"height"` + Text string `json:"text"` + Date int `json:"date"` + PostID int `json:"post_id"` + AccessKey string `json:"access_key"` + } `json:"items"` + } `json:"response"` } \ No newline at end of file diff --git a/easyvk/fave.go b/easyvk/fave.go index 18e2fb9..85d5b52 100644 --- a/easyvk/fave.go +++ b/easyvk/fave.go @@ -53,7 +53,7 @@ func (f *Fave) GetLinks(offset, count uint) (FaveLinks, uint, error) { // GetPhotos returns a list of photos that the current user has bookmarked. // Also this func return count of all bookmarked photos. -func (f *Fave) GetPhotos(offset, count uint) (FavePhotos, uint, error) { +func (f *Fave) GetPhotos(offset, count uint) (FavePhotos, error) { params := map[string]string{ "offset": fmt.Sprint(offset), "count": fmt.Sprint(count), @@ -61,14 +61,13 @@ func (f *Fave) GetPhotos(offset, count uint) (FavePhotos, uint, error) { } resp, err := f.vk.Request("fave.getPhotos", params) if err != nil { - return FavePhotos{}, 0, err + return FavePhotos{}, err } - nextResp, quantity, err := f.vk.ResponseWithCount(resp) var links FavePhotos - err = json.Unmarshal(nextResp, &links) + err = json.Unmarshal(resp, &links) if err != nil { - return FavePhotos{}, 0, err + return FavePhotos{}, err } - return links, quantity, nil + return links, nil } From 8ace2f329a971aefa8291a4f4a15ebab6940dd9a Mon Sep 17 00:00:00 2001 From: SolidlSnake Date: Wed, 19 Apr 2017 22:20:12 +0300 Subject: [PATCH 4/9] Fave.getLinks update --- easyvk/fave-response.go | 23 ++++++++++++++--------- easyvk/fave.go | 11 +++++------ 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/easyvk/fave-response.go b/easyvk/fave-response.go index 53aa7da..4f65d9a 100644 --- a/easyvk/fave-response.go +++ b/easyvk/fave-response.go @@ -13,16 +13,21 @@ type FaveUsers struct { } `json:"response"` } -// A FaveLinks describes a slice of links +// A FaveLinks describes a list of links // that the current user has bookmarked. -type FaveLinks []struct { - ID string `json:"id"` - URL string `json:"url"` - Title string `json:"title"` - Description string `json:"description"` - ImageSrc string `json:"image_src"` - ImageMiddle string `json:"image_middle"` - ImageBig string `json:"image_big"` +type FaveLinks struct { + Response struct { + Count int `json:"count"` + Items []struct { + ID string `json:"id"` + URL string `json:"url"` + Title string `json:"title"` + Description string `json:"description"` + Photo50 string `json:"photo_50"` + Photo100 string `json:"photo_100"` + Photo200 string `json:"photo_200"` + } `json:"items"` + } `json:"response"` } // A FavePhotos describes a list of photos diff --git a/easyvk/fave.go b/easyvk/fave.go index 85d5b52..35babd8 100644 --- a/easyvk/fave.go +++ b/easyvk/fave.go @@ -32,23 +32,22 @@ func (f *Fave) GetUsers(offset, count uint) (FaveUsers, error) { // GetLinks returns a list of links that the current user has bookmarked. // Also this func return count of all bookmarked links. -func (f *Fave) GetLinks(offset, count uint) (FaveLinks, uint, error) { +func (f *Fave) GetLinks(offset, count uint) (FaveLinks, error) { params := map[string]string{ "offset": fmt.Sprint(offset), "count": fmt.Sprint(count), } resp, err := f.vk.Request("fave.getLinks", params) if err != nil { - return FaveLinks{}, 0, err + return FaveLinks{}, err } - nextResp, quantity, err := f.vk.ResponseWithCount(resp) var links FaveLinks - err = json.Unmarshal(nextResp, &links) + err = json.Unmarshal(resp, &links) if err != nil { - return FaveLinks{}, 0, err + return FaveLinks{}, err } - return links, quantity, nil + return links, nil } // GetPhotos returns a list of photos that the current user has bookmarked. From 580d1414f3f8146f7960f49b9e74e7b2e8a0e6bd Mon Sep 17 00:00:00 2001 From: SolidlSnake Date: Wed, 19 Apr 2017 22:24:01 +0300 Subject: [PATCH 5/9] Photos.GetWallUploadServer update --- easyvk/photos-response.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/easyvk/photos-response.go b/easyvk/photos-response.go index 6f130ca..4be8dfc 100644 --- a/easyvk/photos-response.go +++ b/easyvk/photos-response.go @@ -5,8 +5,8 @@ package easyvk type WallUploadServer struct { Response struct { UploadURL string `json:"upload_url"` - AlbumID int `json:"aid"` - UserID int `json:"mid"` + AlbumID int `json:"album_id"` + UserID int `json:"user_id"` } `json:"response"` } From dff2af3505066b73ce9b3a208dad7776f7e354a5 Mon Sep 17 00:00:00 2001 From: SolidlSnake Date: Wed, 19 Apr 2017 23:28:30 +0300 Subject: [PATCH 6/9] Photos.SaveWallPhoto update --- easyvk/photos-response.go | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/easyvk/photos-response.go b/easyvk/photos-response.go index 4be8dfc..936b96b 100644 --- a/easyvk/photos-response.go +++ b/easyvk/photos-response.go @@ -14,17 +14,16 @@ type WallUploadServer struct { // saved photo on wall after being uploaded. type SavedWallPhoto struct { Response []struct { - Pid int `json:"pid"` - ID string `json:"id"` - Aid int `json:"aid"` + ID int `json:"id"` + AlbumID int `json:"album_id"` OwnerID int `json:"owner_id"` - Src string `json:"src"` - SrcBig string `json:"src_big"` - SrcSmall string `json:"src_small"` - SrcXbig string `json:"src_xbig"` + Photo75 string `json:"photo_75"` + Photo130 string `json:"photo_130"` + Photo604 string `json:"photo_604"` + Photo807 string `json:"photo_807"` Width int `json:"width"` Height int `json:"height"` Text string `json:"text"` - Created int `json:"created"` + Date int `json:"date"` } `json:"response"` } \ No newline at end of file From 35faeb0a2677333aaa824ec53f9fc01bb4eaff94 Mon Sep 17 00:00:00 2001 From: SolidlSnake Date: Wed, 19 Apr 2017 23:41:13 +0300 Subject: [PATCH 7/9] Readme update --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 0e7725e..cd83cbb 100644 --- a/README.md +++ b/README.md @@ -30,34 +30,34 @@ ok, err := vk.Status.Set("New status", userID) ``` Post photo on wall: ```go -// your id or -// id of group id := 0 -server, err := vk.Photos.GetWallUploadServer(id) +server, err := vk.Photos.GetWallUploadServer(uint(id)) if err != nil { log.Fatal(err) } // path to the image -path := "./example/x.png" +path := "D:/x.png" uploaded, err := vk.Upload.PhotoWall(server.Response.UploadURL, path) if err != nil { log.Fatal(err) } -saved, err := vk.Photos.SaveWallPhoto(0, id, uploaded.Photo, uploaded.Hash, "", uploaded.Server, 0, 0) +saved, err := vk.Photos.SaveWallPhoto(0, uint(id), uploaded.Photo, uploaded.Hash, "", uploaded.Server, 0, 0) if err != nil { log.Fatal(err) } text := "Caption for the post" +photoID := "photo" + fmt.Sprint(saved.Response[0].OwnerID) + "_" + fmt.Sprint(saved.Response[0].ID) // -id if you post to group wall -postID, err := vk.Wall.Post(id, false, true, false, false, false, text, saved.Response[0].ID, "", "", 0, 0, 0, 0, 0) +x, err := vk.Wall.Post(id, false, true, false, false, false, text, photoID, "", "", 0, 0, 0, 0, 0) if err != nil { log.Fatal(err) } +fmt.Println(x) ``` ### If you need to call method that not done yet: From b8e757ffd2a24e26f53a28fa27fab3844ea52191 Mon Sep 17 00:00:00 2001 From: SolidlSnake Date: Wed, 19 Apr 2017 23:42:25 +0300 Subject: [PATCH 8/9] Readme update --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index cd83cbb..9ac6634 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,9 @@ info, err := vk.Account.GetProfileInfo() ``` Set user status: ```go -userID := 1 +// If you want to update status on your page +// then set ID to 0 +userID := 0 ok, err := vk.Status.Set("New status", userID) ``` Post photo on wall: From 735093e25b08a4d58299bdf14f091f16e64fbff1 Mon Sep 17 00:00:00 2001 From: SolidlSnake Date: Wed, 19 Apr 2017 23:44:12 +0300 Subject: [PATCH 9/9] Remove extra func --- easyvk/vk.go | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/easyvk/vk.go b/easyvk/vk.go index b87c561..0037be4 100644 --- a/easyvk/vk.go +++ b/easyvk/vk.go @@ -75,25 +75,6 @@ func (vk *VK) Request(method string, params map[string]string) ([]byte, error) { return body, nil } -// ResponseWithCount helps to work with specific response type -func (vk *VK) ResponseWithCount(body []byte) ([]byte, uint, error) { - var response struct { - Response []interface{} - } - - err := json.Unmarshal(body, &response) - if err != nil { - return nil, 0, err - } - - byteArray, err := json.Marshal(response.Response[1:]) - if err != nil { - return nil, 0, err - } - - return byteArray, uint(response.Response[0].(float64)), nil -} - type response struct { Response int `json:"response"` }