无法更新HubSpot中的时间戳属性

问题描述

我在HubSpot中具有联系人实体的自定义属性。在我的代码C#中,此属性定义为字段类型“ Date Picker”,我有一个联系人对象,该对象与绑定到该中心点属性属性进行序列化。该属性的类型为long。

[JsonProperty(PropertyName = "last_login_date")]
public double? lastLoginDate { get; set; }

此字段中的数据始终设置为午夜,然后还转换为时间戳以传递给HubSpot。

contact.properties.lastLoginDate = DateTimetoUTC(Convert.ToDateTime(LastLoginInfo.lastLoginDate.ToShortDateString()));

public static double DateTimetoUTC(System.DateTime dateTime)
{
    dateTime = System.DateTime.SpecifyKind(dateTime,DateTimeKind.Utc);
    var utcValue = ((DateTimeOffset)dateTime).ToUnixTimeMilliseconds();
    return utcValue;
}

我正在发送到HubSpot的json数据是这样获得的: {“属性”:{“ last_login_date”:1601856000000.0,“名字”:“安德鲁”,“姓氏”:“杰森”,“电子邮件”:“ [email protected]”,“电话”:“ 3058675309”,“手机“:” 3058675308“},” id“:null}

API调用失败,并引发以下错误

{"status":"error","message":"Property values were not valid: [{\"isValid\":false,\"message\":\"1601856000000.0 was not a valid long.\",\"error\":\"INVALID_LONG\",\"name\":\"last_login_date\"}]","correlationId":"7d73007a-bedd-4923-b055-b3318e32414b","category":"VALIDATION_ERROR"}



request.AddHeader("content-type","application/json");
var json = JsonConvert.SerializeObject(contact);
request.AddParameter("application/json",json,ParameterType.RequestBody);

如果我将Hubspot中的属性类型更改为文本输入,则不会出错。但是,我需要将此属性作为日期字段。

解决方法

问题在于序列化对象时,它在时间戳记末尾附加了.0。我在c#端将属性更改为字符串,并且不再遇到问题,并且该实体在HubSpot中已正确更新。