Как отформатировать значение даты для Hubspot API, используя Python - PullRequest
0 голосов
/ 28 мая 2020

Я прочитал документы, в которых говорится, что для передачи значения для поля даты Hubspot вы должны отформатировать дату как полночь UT C. Однако мне не удалось сделать это в Python. Я полагаю, мне просто не хватает заклинания magi c Python, которое даст правильный результат. Вот что у меня:

    from pytz import timezone, utc
    from hubspot.crm.contacts import SimplePublicObject,

    created_dt = # datetime from sqlalchemy query
    utcdt = utc.localize(
        datetime(
            year=created_dt.year,
            month=created_dt.month,
            day=created_dt.day
            )
    )
    ts = int(utcdt.timestamp())
    props = SimplePublicObjectInput({"last_booking": str(ts)})
    return client.crm.companies.basic_api.update(
        hs_id, simple_public_object_input=props
    )

это возвращает эту ошибку:

{"status":"error",
 "message":"Property values were not valid: [{\"isValid\":false,\"message\":\"1570233600 is at 4:10:33.600 UTC, not midnight!\"...
 }

Ответы [ 2 ]

0 голосов
/ 29 мая 2020

Ах, ответ был тут же. Python timestamp возвращает время в секундах, а HubSpot ожидает микросекунды. Мне просто пришлось умножить на 1000:

ts = int(utcdt.timestamp()*1000)

теперь все выглядит хорошо.

0 голосов
/ 28 мая 2020

вы пытались добавить часы и минуты к вашему вызову datetime

datetime(
    year=created_dt.year,
    month=created_dt.month,
    day=created_dt.day,
    hour=0,
    minute=0
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...