Скорость ограничена ответом MY_CONTACTS_OVERFLOW_COUNT
Я набираю прототип приложения с помощью Google New People API. Во время тестирования я добавлял и удалял контакты партиями, чтобы увидеть, сколько контактов можно добавить в минуту и в день в целом.
Я понимаю, что в документации указано, сколько может быть добавлено в минуту, но из моего тестирования я, похоже, не приблизился к этому. Даже при просмотре моих показателей мой запрос намного превышает предполагаемые пределы в минуту и в день.
Мой главный вопрос, который у меня есть, заключается в том, что после пары попыток через учетную запись службы на 3 из моих учетных записей gmail я теперь возвращаюсь
Клиентский код для запуска теста:
package main
import (
"context"
"log"
"google.golang.org/api/people/v1"
"os"
"bufio"
"time"
//"github.com/davecgh/go-spew/spew"
)
func chunks(xs []string, chunkSize int) [][]string {
if len(xs) == 0 {
return nil
}
divided := make([][]string, (len(xs)+chunkSize-1)/chunkSize)
prev := 0
i := 0
till := len(xs) - chunkSize
for prev < till {
next := prev + chunkSize
divided[i] = xs[prev:next]
prev = next
i++
}
divided[i] = xs[prev:]
return divided
}
func main(){
ctx := context.Background()
srv, err := people.NewService(ctx)
if err != nil {
log.Fatalf("Unable to create people Client %v", err)
}
file, err := os.Open("test125k.txt")
if err != nil {
log.Fatalf("failed opening file: %s", err)
}
scanner := bufio.NewScanner(file)
scanner.Split(bufio.ScanLines)
var txtlines []string
for scanner.Scan() {
txtlines = append(txtlines, scanner.Text())
}
chunkEmails := chunks(txtlines,200)
count := 0
var validPeopleResources []string
log.Printf("Started")
for i,chunk := range chunkEmails{ //
var contacts people.BatchCreateContactsRequest
contacts.ReadMask = "emailAddresses,photos"
for _,chunkEmail := range chunk{
var contact people.ContactToCreate
var person people.Person
var personEmails people.EmailAddress
personEmails.Value = chunkEmail
var AllEmails = [](*people.EmailAddress){
&personEmails,
}
person.EmailAddresses = AllEmails
contact.ContactPerson = &person
contacts.Contacts = append(contacts.Contacts, &contact)
}
r,err := srv.People.BatchCreateContacts(&contacts).Do()
if err != nil {
log.Printf("Unable to create contacts")
log.Printf(err.Error())
log.Fatalf("")
}
var contactEmail string
var resource string
for _, validPeople := range r.CreatedPeople {
contactEmail = validPeople.Person.EmailAddresses[0].Value
resource = validPeople.Person.ResourceName
validPeopleResources = append(validPeopleResources,resource)
}
count = count + 1
if count == 2 {
var contactToDelete people.BatchDeleteContactsRequest
contactToDelete.ResourceNames = validPeopleResources
_,err = srv.People.BatchDeleteContacts(&contactToDelete).Do()
if err != nil {
log.Printf("Unable to delete contacts")
log.Printf(err.Error())
log.Fatalf("")
}
validPeopleResources = nil
count = 0
log.Printf("performed delete")
}
log.Printf("%d comlpeted",i)
time.Sleep(10 * time.Second)
}
}
1 ответ
«MY_CONTACTS_OVERFLOW_COUNT» возникает, когда вы пытаетесь вставить новые контакты в учетную запись Google, но у них уже есть максимальное количество контактов.
Максимальный лимит составляет 25 000 с 2011 г .: https://workspaceupdates.googleblog.com/2011/05/need-more-contacts-in-gmail-contacts.html.
Здесь следует отметить, что Google также учитывает удаленные контакты при подсчете количества. Вы можете найти удаленные контакты в корзине контактов . Эти контакты будут удалены через 30 дней.