質問&ディスカッション

A-imai
メンバー

フォームの全てのIDを取得するcurlコマンド

解決

フォーム内の特定のフォルダ内にあるフォームにアクセスしたい。

 

これをAccessトークンを使用してcurlコマンドで実装したいのですが

システムを記述すれば取得できます。

下記に、フォームを取得することは出来ません。

 

curl --request GET --url "https://api.hubapi.com/marketing/v3/forms/" --header "authorization: Bearer 「Accesstoken」

 

0 いいね!
1件の承認済みベストアンサー
skimura
解決策
トップ投稿者 | Platinum Partner
トップ投稿者 | Platinum Partner

フォームの全てのIDを取得するcurlコマンド

解決

@A-imai 

 

こんにちは、下記の方法はいかがでしょうか。

 

1. 下記のAPIでフォームの一覧を取得
※フォーム数が多い場合はレスポンスのデータ量が多くなるので注意
レスポンスは各フォーム情報の配列なので
各フォーム毎のguidを収集します。
 
※フォーム情報にはフォルダー情報が無いように思います。
下記のような処理で、特定フォルダーのフォームのみにフィルターするのはいかがでしょうか。
事前にフォルダー内のフォーム名を収集し、
APIで取得したフォーム情報の「フォーム名」をみて一致したフォームのみにフィルター
 
// レスポンス
[
  {
    "portalId": 62515,
    "guid": "0033cf74de6a48c4ac5d805d72d69822", // ←この値を収集
    "name": "Example Form Name",
    "action": "",
    ...,
  },
  ...
]
 
2. 下記のAPIで各フォーム毎の送信情報を取得
リクエスト:[1. ]で取得したフォームのguid
※おそらくですがエクスポート時の一部プロパティは
下記のように対応しているのではないでしょうか(未検証)
(エクスポート時のプロパティ:APIレスポンス)
Conversion Date:submittedAt
Conversion Page:pageUrl
// レスポンス
{
  "results": [
    {
      "submittedAt": 1547130102576, // ←[Conversion Date]に対応してそうです。
      "values": [
        {
          "name": "email",
          "value": "example@example.com"
        },
        {
          "name": "company",
          "value": "Example Co"
        },
        {
          "name": "phone",
          "value": "123 555 4567"
        }
      ],
      "pageUrl": "https://www.example.com/form" // ← [Conversion Page]に対応してそうです。
    },
  ...
}
 
フォーム毎の情報を収集する処理としては下記の流れかと思います。
上記[1. ]でフォームのguidを収集(必要に応じてフィルター)
フォームの数だけ下記を繰り返す
上記[2. ] でguidをリクエストしてフォーム毎の送信情報
※必要に応じてページング、APIの呼び出し制限を考慮
 
 
Option:必要であれば下記の方法でフォームのフィールド名を取得できます。
※上記 [2.] ではフォームの内部値がレスポンスされます。
 
(例:{'label': 'メールアドレス', name: 'email', ...}
 
各フォーム毎のフィールド情報を下記のAPIで取得します。
 
レスポンスのフィールド情報 [label] からフィールド名を取得できます。
// レスポンス
[
  {
    ...
    'label': 'LastName', // フィールド名
    ...
    'name': 'lastname', // 内部値
  ...
  },
  ...
]

 

参考になれば幸いです。

 

@natsumimori 

お知らせいただきありがとうございます。

 

元の投稿で解決策を見る

4件の返信
skimura
解決策
トップ投稿者 | Platinum Partner
トップ投稿者 | Platinum Partner

フォームの全てのIDを取得するcurlコマンド

解決

@A-imai 

 

こんにちは、下記の方法はいかがでしょうか。

 

1. 下記のAPIでフォームの一覧を取得
※フォーム数が多い場合はレスポンスのデータ量が多くなるので注意
レスポンスは各フォーム情報の配列なので
各フォーム毎のguidを収集します。
 
※フォーム情報にはフォルダー情報が無いように思います。
下記のような処理で、特定フォルダーのフォームのみにフィルターするのはいかがでしょうか。
事前にフォルダー内のフォーム名を収集し、
APIで取得したフォーム情報の「フォーム名」をみて一致したフォームのみにフィルター
 
// レスポンス
[
  {
    "portalId": 62515,
    "guid": "0033cf74de6a48c4ac5d805d72d69822", // ←この値を収集
    "name": "Example Form Name",
    "action": "",
    ...,
  },
  ...
]
 
2. 下記のAPIで各フォーム毎の送信情報を取得
リクエスト:[1. ]で取得したフォームのguid
※おそらくですがエクスポート時の一部プロパティは
下記のように対応しているのではないでしょうか(未検証)
(エクスポート時のプロパティ:APIレスポンス)
Conversion Date:submittedAt
Conversion Page:pageUrl
// レスポンス
{
  "results": [
    {
      "submittedAt": 1547130102576, // ←[Conversion Date]に対応してそうです。
      "values": [
        {
          "name": "email",
          "value": "example@example.com"
        },
        {
          "name": "company",
          "value": "Example Co"
        },
        {
          "name": "phone",
          "value": "123 555 4567"
        }
      ],
      "pageUrl": "https://www.example.com/form" // ← [Conversion Page]に対応してそうです。
    },
  ...
}
 
フォーム毎の情報を収集する処理としては下記の流れかと思います。
上記[1. ]でフォームのguidを収集(必要に応じてフィルター)
フォームの数だけ下記を繰り返す
上記[2. ] でguidをリクエストしてフォーム毎の送信情報
※必要に応じてページング、APIの呼び出し制限を考慮
 
 
Option:必要であれば下記の方法でフォームのフィールド名を取得できます。
※上記 [2.] ではフォームの内部値がレスポンスされます。
 
(例:{'label': 'メールアドレス', name: 'email', ...}
 
各フォーム毎のフィールド情報を下記のAPIで取得します。
 
レスポンスのフィールド情報 [label] からフィールド名を取得できます。
// レスポンス
[
  {
    ...
    'label': 'LastName', // フィールド名
    ...
    'name': 'lastname', // 内部値
  ...
  },
  ...
]

 

参考になれば幸いです。

 

@natsumimori 

お知らせいただきありがとうございます。

 

A-imai
メンバー

フォームの全てのIDを取得するcurlコマンド

解決

ご連絡ありがとうございます。内容も分かり易く大変助かります。

試してみます。

0 いいね!
natsumimori
コミュニティーマネージャー
コミュニティーマネージャー

フォームの全てのIDを取得するcurlコマンド

解決

@A-imai さん

 

CurlコマンドでAPIを叩いて全HubSpotフォームのIDを取得されたい、ということでしょうか。

@skimura さん> そういったことは可能か、お分かりになりますか?質問の意味を完全に理解していない状態で申し訳ないのですが、もしアドバイスがあればお願いいたします!

 

*当初Developers Forumにご投稿いただきましたが、Developers Forumは英語のみ対応のため、こちらの日本語版HubSpotコミュニティーに投稿を移動させていただきました。

0 いいね!
A-imai
メンバー

フォームの全てのIDを取得するcurlコマンド

解決

現在手動で行っている事は、特定のフォルダ内にあるフォームを順次開いて、送信をエクスポート、xlsxでダウンロードしています。これを自動化しようと試みております。

 

一気にフォルダ内のフォームをダウンロード出来ればベストですが、難しそうなので、一旦リストで抽出して全てのフォームIDを取得してから、フォームIDで1件ずつ取得出来ないかと考えております。

0 いいね!