无法将查询参数作为数组传递到外部API

问题描述 投票:0回答:1

我正在遵循网络研讨会平台的文档,以允许参与者通过 api 注册。有效负载将像这样传递

$params = array(
'registration' => array(
    1 => 'John',
    2 => 'Dee',
    3 => '[email protected]',
),

这是刚刚添加参与者的文档截图

下面是我写的代码

$client = new Client();

    $headers = [
        'X-Api-Key' => 'XXXXXXXXXXXXXX',
    ];

    $params = [
        'registration' => [
            1 => 'Justice',
            2 => 'Arthur',
            3 => '[email protected]',
        ],
    ];

    $response = $client->post('https://api.clickmeeting.com/v1/conferences/7436564/registration', [
        'headers' => $headers,
        'json' => $params,
    ]);

    $body = $response->getBody()->getContents();

    // log the response
    Log::debug('ClickMeeting API response', [
        'status' => $response->getStatusCode(),
        'body' => $body,
    ]);

    // handle response as needed

}

然而所有的尝试都没有成功。我不断收到此错误

[![ "code": 422,
"name": "VALIDATION_ERRORS",
"errors": [
    {
        "name": 1,
        "message": "The \"Name\" field is required and can`t be empty."
    },
    {
        "name": 3,
        "message": "The \"Email Address\" field is required and can`t be empty."
    }
]]

非常感谢任何帮助。我正在使用 Laravel 8

php laravel api rest laravel-8
1个回答
0
投票

我在 ClickMeeting API 中遇到了类似问题,特别是在尝试提交包含 自定义字段 的注册时。我通过 ClickMeeting UI 添加了一个“电话号码”字段。正如 @James Donohue 已经说过,API 文档仅提供了三个参数的详细信息,并且在如何管理注册页面上添加的自定义字段方面存在明显的差距。

尝试使用注册表上的附加字段注册新与会者时,我收到类似于以下内容的验证错误

  "code":422,
  "name":"VALIDATION_ERRORS",
  "errors":[
    {
      "name":2221582,
      "message":"The \"Phone Number\" field is required and can`t be empty."
    }
  ]
}

目前,据我了解,ClickMeeting API 本身并不支持通过 API 进行注册过程中的自定义字段

至少我们不知道如何传递这些自定义字段,以免收到错误响应。我还尝试将字段名称作为 $params 数组中的键传递等等,但没有成功。

幸运的是...

经过一番试验和错误,我发现 API 可以按预定义的顺序处理具有一组特定字段的 $params 数组。这些字段及其顺序似乎是固定的,并且不直接支持自定义字段。然而,预定义字段恰好包含一个“电话”字段的插槽,这满足了我的需求。

以下是如何使用一些附加字段构造 $params 数组:

$params = [
    'registration' => [
        1 => 'First name',
        2 => 'Last name',
        3 => '[email protected]',
        4 => 'Address',
        5 => 'City',
        6 => 'State/Province',
        7 => 'Zip/Postal Code',
        8 => 'Country',
        9 => 'Phone',
        10 => 'Company',
    ],
];

对于那些在 ClickMeeting API 方面面临类似问题的人,重要的是要了解,根据我的发现,该 API 目前似乎不支持自定义字段。只能传递特定顺序的一组特定参数。

希望有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.