PureBasic
PureBasic
List Google Photos Albums
See more Google Photos Examples
Demonstrates how to get a list of Google Photos albums.Chilkat PureBasic Downloads
IncludeFile "CkHttpResponse.pb"
IncludeFile "CkHttp.pb"
IncludeFile "CkJsonObject.pb"
Procedure ChilkatExample()
success.i = 0
; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
; Get the previously obtained access token.
; See Get Google Photos Access Token.
jsonToken.i = CkJsonObject::ckCreate()
If jsonToken.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkJsonObject::ckLoadFile(jsonToken,"qa_data/tokens/googlePhotos.json")
If success = 0
Debug CkJsonObject::ckLastErrorText(jsonToken)
CkJsonObject::ckDispose(jsonToken)
ProcedureReturn
EndIf
http.i = CkHttp::ckCreate()
If http.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkHttp::setCkAuthToken(http, CkJsonObject::ckStringOf(jsonToken,"access_token"))
resp.i = CkHttpResponse::ckCreate()
If resp.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkHttp::ckHttpNoBody(http,"GET","https://photoslibrary.googleapis.com/v1/albums",resp)
If success = 0
Debug CkHttp::ckLastErrorText(http)
CkJsonObject::ckDispose(jsonToken)
CkHttp::ckDispose(http)
CkHttpResponse::ckDispose(resp)
ProcedureReturn
EndIf
; Examine the response status code. Success is indicated by a status code of 200.
Debug "response status code: " + Str(CkHttpResponse::ckStatusCode(resp))
json.i = CkJsonObject::ckCreate()
If json.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkJsonObject::ckLoad(json,CkHttpResponse::ckBodyStr(resp))
; Sample response:
CkJsonObject::setCkEmitCompact(json, 0)
Debug CkJsonObject::ckEmit(json)
; {
; "albums": [
; {
; "id": "AKcbugFJDPVIW3w4JMTV9hWpjnvK-iHkZwS_FRuIm_jtqektmP7bTpvx27eETfLHOZrSznkt0bR3",
; "title": "April 23, 2016",
; "productUrl": "https://photos.google.com/lr/album/AKcbugFJDPVIW3w4JMTV9hWpjnvK-iHkZwS_FRuIm_jtqektmP7bTpvx27eETfLHOZrSznkt0bR3",
; "mediaItemsCount": "1",
; "coverPhotoBaseUrl": "https://lh3.googleusercontent.com/lr/AGWb-e6L7ecrCQmp ... uXVvAoTeMwJg",
; "coverPhotoMediaItemId": "AKcbugHEVyTFgIYb7GzhRFP5KvhBRIIsRcb6Cd4-2ByHzad2oqZnWF2aMPoXY-vfrXmefdTlyF3yZ22Odz6IFLs8pnJlOoVBUg"
; },
; {
; "id": "AKcbugHJ4Zip9WHj_rpS9it133uu753VFffiNg9s0aapPSFAEzEwFxOuCG84OXYgJGclgnt1WqG1",
; "title": "April 23, 2016",
; "productUrl": "https://photos.google.com/lr/album/AKcbugHJ4Zip9WHj_rpS9it133uu753VFffiNg9s0aapPSFAEzEwFxOuCG84OXYgJGclgnt1WqG1",
; "mediaItemsCount": "1",
; "coverPhotoBaseUrl": "https://lh3.googleusercontent.com/lr/AGWb-e5h7xK6G_baGN6KuuBHG5veLD49Xiaiix0GuTjii ... 7rkIexZj3AAdCA",
; "coverPhotoMediaItemId": "AKcbugHEVyTFgIYb7GzhRFP5KvhBRIIsRcb6Cd4-2ByHzad2oqZnWF2aMPoXY-vfrXmefdTlyF3yZ22Odz6IFLs8pnJlOoVBUg"
; },
; {
; "id": "AKcbugHaQTvUKSi3M2RQxOhxhdEaLc5mfUcqFoIU_kpQaROyUD70BcFt7_mnz5PcwwsjPKeKnLHN",
; "title": "animals",
; "productUrl": "https://photos.google.com/lr/album/AKcbugHaQTvUKSi3M2RQxOhxhdEaLc5mfUcqFoIU_kpQaROyUD70BcFt7_mnz5PcwwsjPKeKnLHN",
; "isWriteable": true,
; "coverPhotoBaseUrl": "https://lh3.googleusercontent.com/mL8RRbd0pjFIhHc0A4En4y7ZftwyjZTSp5YWX5j1EyPxX5GepHML"
; }
; ]
; }
; Use this online tool to generate parsing code from sample JSON:
; Generate Parsing Code from JSON
i.i
count_i.i
id.s
title.s
productUrl.s
mediaItemsCount.s
coverPhotoBaseUrl.s
coverPhotoMediaItemId.s
isWriteable.i
i = 0
count_i = CkJsonObject::ckSizeOfArray(json,"albums")
While i < count_i
CkJsonObject::setCkI(json, i)
id = CkJsonObject::ckStringOf(json,"albums[i].id")
title = CkJsonObject::ckStringOf(json,"albums[i].title")
productUrl = CkJsonObject::ckStringOf(json,"albums[i].productUrl")
mediaItemsCount = CkJsonObject::ckStringOf(json,"albums[i].mediaItemsCount")
coverPhotoBaseUrl = CkJsonObject::ckStringOf(json,"albums[i].coverPhotoBaseUrl")
coverPhotoMediaItemId = CkJsonObject::ckStringOf(json,"albums[i].coverPhotoMediaItemId")
isWriteable = CkJsonObject::ckBoolOf(json,"albums[i].isWriteable")
i = i + 1
Wend
CkJsonObject::ckDispose(jsonToken)
CkHttp::ckDispose(http)
CkHttpResponse::ckDispose(resp)
CkJsonObject::ckDispose(json)
ProcedureReturn
EndProcedure