質問&ディスカッション

hideking
メンバー

APIで日付を送信してもコンタクトに登録されません

解決

APIで日付型のフィールドに日付を登録したいのですが登録されず困っています。

 

APIで送信している書式=YYYY-MM-DD

HubSpot側のフィールドタイプ=日付入力

 

↓ここを参照しました。

https://developers.hubspot.jp/docs/api/faq

「HubSpotのAPIによるタイムスタンプの形式はどのように設定すればよいですか?」

 

ちなみにAPI送信はWordpressのプラグインのContact Form HubSpot Pluginを利用しています。

何でも結構ですのでアドバイスいただけますと幸いです。

0 いいね!
1件の承認済みベストアンサー
Keit
解決策
ガイド役 | Elite Partner
ガイド役 | Elite Partner

APIで日付を送信してもコンタクトに登録されません

解決

@hideking さま、

HubSpotのForm APIですが、YYYY-MM-DDの形式では実は登録されません。

(よくある質問が誤りを記載してますね😅

 

以下に記載のように、UNIXタイムスタンプに変換して、APIをコールする必要がございます。

https://legacydocs.hubspot.com/docs/faq/how-should-timestamps-be-formatted-for-hubspots-apis

 

以上、ご参考になれば幸いです。

 

元の投稿で解決策を見る

6件の返信
Keit
解決策
ガイド役 | Elite Partner
ガイド役 | Elite Partner

APIで日付を送信してもコンタクトに登録されません

解決

@hideking さま、

HubSpotのForm APIですが、YYYY-MM-DDの形式では実は登録されません。

(よくある質問が誤りを記載してますね😅

 

以下に記載のように、UNIXタイムスタンプに変換して、APIをコールする必要がございます。

https://legacydocs.hubspot.com/docs/faq/how-should-timestamps-be-formatted-for-hubspots-apis

 

以上、ご参考になれば幸いです。

 

hideking
メンバー

APIで日付を送信してもコンタクトに登録されません

解決

教えていただきありがとうございました!

確かにUNIXタイムスタンプにしたらうまくいきました!

タイムゾーンがUTCでなければいけないのに、Asia/Tokyoでやってしまってしばらくハマってしまいました。最終的にはそちらに書かれておりました通り、

時分秒がすべて0でタイムゾーンがUTCのUNIXタイムスタンプだけが登録できました。

ありがとうございました!

KMurota
トップ投稿者

APIで日付を送信してもコンタクトに登録されません

解決

@hideking 
リクエスト自体は200番で成功しているでしょうか?他のプロパティの更新状況はいかがでしょうか?

日付プロパティの更新成功例、以下になりますのでご参考ください。

KMurota_2-1656298882060.png

 

 



Kan Murota | Founder of Hyper Automation Design Studio
logo
hideking
メンバー

APIで日付を送信してもコンタクトに登録されません

解決

さっそくご助言ありがとうございます!

他のプロパティは正常に登録されています。

Contact Form HubSpot Pluginの管理画面上では送信成功しています。

Chromeのネットワークで見ますと

リクエスト URL: https://forms.hubspot.com/collected-forms/submit/form
リクエスト メソッド: POST
ステータス コード: 204

と出ており、200番で成功しているように見えます。

 

まだ使い始めのため添付いただいたようなモニタリング画面がどこにあるかもわからない状態でして、調べていたら開発者アカウントというものがあることを知り、さっそく登録してテストアカウントを作成しました状態です。

アプリを作成してそこから

Contact Form HubSpot Pluginと接続できたらモニタリングができるのかなと考えましたが、どうやらそういったものではなさそう?というところで止まっております。。

サードパーティ製の外部アプリとの通信をモニタリングする方法はありますでしょうか。。

 

0 いいね!
KMurota
トップ投稿者

APIで日付を送信してもコンタクトに登録されません

解決

@hideking 
あ、なるほど。すみません、画像はMake(Integromat)で試しにAPIでUpdateをかけた時のものです。

下の画像のように直接フォームを使用すると恐らく暗号化されていて見えないのかなと思いますが、APIを使用してwordpressのPHPなどがPOSTしているのであれば、Dev Toolのフォームデータのところにあるはずです。

開発者アカウントは主にアプリを作成する際などに使用します。

プラグインがDateのフォーマットをどうしてくれているかどうかですよね。

KMurota_0-1656310063974.png

 



Kan Murota | Founder of Hyper Automation Design Studio
logo
hideking
メンバー

APIで日付を送信してもコンタクトに登録されません

解決

ご丁寧にありがとうございました!
Makeというものがあるのですね。おもしろそうですのでこれはこれでまた利用させていただきたいと思います。

ご助言いただきましたことなど色々いじっているうちに、色々認識不足がわかってきまして、何とか解決はできましたのでご報告させていただきます。

 

結論を申しますと、UNIXタイムスタンプのミリ秒形式でタイムゾーンがUTCのみ受け付けてくれることがわかりました。Asia/Tokyoの+9時間されたものはNGです。時分秒は必ずすべて0である必要があります。

例えば、

2022/7/1 00:00:00.000 UTCは

UNIXタイムスタンプでは1656633600000で受け付けますが、

2022/7/1 00:00:00.000 Asia/Tokyoは

UNIXタイムスタンプでは1656601200000で受け付けません。

これは

2022/7/1 09:00:00.000 UTCと認識されるからかなと思います。

 

ヘルプを見ますと

https://developers.hubspot.jp/docs/api/faq

の中ほどの

「日付プロパティー値を設定する際は、ISO 8601の完全な日付形式を使用することをお勧めします。」

という記述のISO 8601の完全な日付形式はYYYY-MM-DDのことですが、これは今回成功しませんでした。

さらに

2015-05-01は、2015年5月1日を表します。ミリ秒単位のタイムスタンプを使用することもできますが、必要な日付のUTCの深夜の値に設定する必要があります。 

「UTCの深夜以外の値を設定しようとすると、エラーが返されます。HubSpotの日付プロパティーでは、アカウントやユーザーのタイムゾーン設定に関係なく、設定されている特定の日付が常に表示されます。」

という記述は、今回成功したUNIXタイムスタンプと合います。

 

誤解してましたのが、通信はPHPサーバー→HubSpotのためChromeでは確認できないものでした。最初にChromeで見たらHubSpotにPOSTしていたのでJSで送っていると思い込んでましたが、これは

設定>HubSpot以外のフォーム>ウェブサイトフォームからデータを収集

がONになっているからでした。

 

YYYY-MM-DD形式がだめだったのは、もしかしたらContact Form HubSpot Pluginが勝手にAsia/TokyoタイムゾーンでUNIXタイムスタンプに変換してしまっているからかもしれませんが、これはまた時間があるときに見てみたいと思います。たいへんお手数をおかけしました。ありがとうございました!