RESTful API エンドポイント (submit)

submitエンドポイントについて

モデル「contact」に対してのみ有効なエンドポイントです。フォームに対して投稿を行います。

エンドポイント

/api/v1/スコープID/contact/submit/フォームID
/api/v1/1/contact/submit/1

メソッド

POST

リクエストボディ

※ リクエストボディの代わりにフォームで生成した HTMLフォームのパラメタを POSTすることも可能です。

  • Identifier : コンタクトの識別子です。
  • Language : 言語を指定します。
  • Permalink : フォームに URLが存在する場合、そのURL
  • ObjectId : Permalinkを指定しない時、どのオブジェクトに対するフォームであるかを指定する場合にオブジェクトの IDを指定します。
  • Model : Permalinkを指定しない時、どのオブジェクトに対するフォームであるかを指定する場合にオブジェクトのモデル名を指定します。
  • MagicToken : tokenエンドポイントまたは confirmエンドポイントへのリクエストで発行された一時トークン

これらのキーは一時トークンを必要とするフォームに対する「MagicToken」以外はすべて省略可能です。これらのキーと別に、フォーム項目のベースネームと値を配列で追加します。

{
    "Identifier": "contact_us",
    "Language": "ja",
    "Permalink":"https:\/\/localhost\/01\/contact\/website_contact_us.html",
    "MagicToken" : "一時トークン",
    "website_your_name": "野田純生",
    "website_email": "webmaster@alfasado.jp",
    "website_subject": "テスト投稿",
    "website_message": "テスト投稿です",
    "website_privacy_policy": "agree"
}

ファイルを添付する時

ファイル名、設問のベースネームを付けて送信します。

{
    "Identifier": "contact_us",
    "Language": "ja",
    "Permalink":"https:\/\/localhost\/01\/contact\/website_contact_us.html",
    "website_your_name": "野田純生",
    "website_email": "webmaster@alfasado.jp",
    "website_subject": "テスト投稿",
    "website_message": "テスト投稿です",
    "website_privacy_policy": "agree",
    "attachmentfiles": [
        {
            "name": "ファイル名.docx",
            "basename": "website_attachment1",
            "file": {
                "Data": "data:application\/vnd.openxmlformats-officedocument.wordprocessingml.document;base64,............"
            }
        }
    ]
}

レスポンス(成功時)

フォームにリダイレクト先が指定されている時、redirect_url にリダイレクト先が追加されます。

{
    "Success": 1,
    "contact": {
        "id": 30,
        "subject": "テスト投稿",
        "name": "野田純生",
        "email": "junnama@alfasado.jp",
        "identifier": "contact_us",
        "data": {
            "question_1": "野田純生",
            "question_2": "junnama@alfasado.jp",
            "question_3": "テスト投稿",
            "question_4": "テスト投稿です",
            "question_5": "agree"
        },
        "question_map": {
            "question_1": "Your Name",
            "question_2": "Email",
            "question_3": "Subject",
            "question_4": "Message",
            "question_5": "Privacy Policy"
        },
        "tags": [],
        "state": 1,
        "created_on": "2021-09-02 19:02:25",
        "model": "form",
        "remote_ip": "::1",
        "workspace_id": 1
    },
    "params": {
        "Identifier": "contact_us",
        "Language": "ja",
        "MagicToken": "一時トークン",
        "Permalink": "https:\/\/localhost\/01\/contact\/website_contact_us.html",
        "website_your_name": "野田純生",
        "website_email": "webmaster@alfasado.jp",
        "website_subject": "テスト投稿",
        "website_message": "テスト投稿です",
        "website_privacy_policy": "agree"
    },
    "redirect_url": "?submit=1"
}

※ バリデーション・エラーがあった時

{
    "messages": [
        "お名前は必須です。",
        "正しいメールアドレスを指定してください。"
    ],
    "errors": {
        "website_your_name": "お名前は必須です。",
        "website_email": "正しいメールアドレスを指定してください。"
    },
    "params": {
        "Identifier": "contact_us",
        "Language": "ja",
        "Permalink": "https:\/\/localhost\/01\/contact\/website_contact_us.html",
        "website_your_name": "",
        "website_email": "webmaster",
        "website_subject": "テスト投稿",
        "website_message": "テスト投稿です",
        "website_privacy_policy": "agree"
    }
}

レスポンス・エラー

共通レスポンスエラーについてはこちら を参照ください。

一時トークンが必要なフォームで一時トークンが渡されなかったか、正しくなかった時

{
    "status": 403,
    "message": "Invalid request."
}

一時トークンの有効期限が切れていた時

{
    "status": 403,
    "message": "Your session has expired."
}

環境変数「validate_token_ip」が指定されていて token or confirm 時と IPアドレスが異なる時

{
    "status": 403,
    "message": "Invalid IP address."
}

環境変数「validate_token_ua」が指定されていて token or confirm 時と User Agent が異なる時

{
    "status": 403,
    "message": "Invalid User Agent."
}

フォームに「セッションを利用する」が指定されていて、セッションが正しくなかった時

{
    "status": 403,
    "message": "Invalid session."
}