We are trying to fetch ChromeOS end points. We use page token to fetch the next page. When the token expires, we renew the token and try to resume polling. But we get error saying page token is invalid.
If we do not use page token, we get back page 0.
So question is how do we resume polling using renewed page token?
srv, err := admin.New(client)
if err != nil {
log.Fatalf("Unable to retrieve directory Client %v", err)
}
pageID := 1
pageToken := ""
sleep := false
for {
log.Printf("Fetch page: %d", pageID)
srv := srv.Chromeosdevices.List("my_customer").MaxResults(1).Projection("FULL")
if pageToken != "" {
srv = srv.PageToken(pageToken)
}
r, err := srv.Do()
if err != nil {
log.Fatalf("Unable to retrieve devices: %v", err)
}
if len(r.Chromeosdevices) == 0 {
log.Printf("No devices found")
break
}
for _, u := range r.Chromeosdevices {
log.Printf("Page(%d) MAc: %s Model: %s", pageID, u.MacAddress, u.Model)
}
time.Sleep(3 * time.Second)
pageToken = r.NextPageToken
if pageToken == "" {
log.Printf("Completed with all pages")
break
}
pageID += 1
if !sleep {
log.Printf("Sleeping for 70 minutes")
time.Sleep(4200 * time.Second)
sleep = true
log.Printf("Done Sleeping for 70 minutes")
}