Скорость ограничена ответом MY_CONTACTS_OVERFLOW_COUNT

Я набираю прототип приложения с помощью Google New People API. Во время тестирования я добавлял и удалял контакты партиями, чтобы увидеть, сколько контактов можно добавить в минуту и ​​в день в целом.

Я понимаю, что в документации указано, сколько может быть добавлено в минуту, но из моего тестирования я, похоже, не приблизился к этому. Даже при просмотре моих показателей мой запрос намного превышает предполагаемые пределы в минуту и ​​в день.

Мой главный вопрос, который у меня есть, заключается в том, что после пары попыток через учетную запись службы на 3 из моих учетных записей gmail я теперь возвращаюсь . Я не могу найти упоминания о онлайн. Я предположил, что из-за ошибки это означает, что у меня слишком много контактов, но при запуске сценария удаления кажется, что у меня их вообще нет. Этот ответ возвращается для всех трех учетных записей на моей машине разработки в течение более 24 часов, что заставляет меня думать, что я, возможно, был заблокирован и не ограничен по скорости?

Клиентский код для запуска теста:

      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 дней.

Другие вопросы по тегам