如何在 JSON API Post 中 "Include" 在 PHP 中?
How to "Include" in a JSON API Post in PHP?
我正在使用 Planning Center API,它的构建符合 JSON API 1.0 规范。
我们需要 post 一个人的数据到规划中心。 API 似乎要拆散一个人,从他们的 phone 电话号码和电子邮件来看。我是新手,所以我不确定您是否可以在同一个 cURL 请求中 post 它们,或者我是否需要 3 个请求。我的理解(可能是误导)是我可以在 POST 请求中 "include" 电子邮件和 phone 号码。
这是我的:
$person = '{
"data": {
"type": "Person",
"attributes": {
"first_name": "Test",
"last_name": "User"
},
"relationships": {
"primary_campus": {
"data": { "type": "PrimaryCampus", "id": "123" }
}
}
},
"include":{
"data": {
"type": "emails",
"attributes": {"address": "test@test.com"}
}
}
}';
$channel = curl_init();
curl_setopt( $channel, CURLOPT_URL, "https://api.planningcenteronline.com/people/v2/people" );
//curl_setopt( $channel, CURLOPT_RETURNTRANSFER, true);
curl_setopt( $channel, CURLOPT_USERPWD, $application_ID.":".$application_secret );
curl_setopt( $channel, CURLOPT_POST, true);
curl_setopt( $channel, CURLOPT_POSTFIELDS, $person);
curl_exec($channel);
echo $channel;
这似乎只创建了人的名字和姓氏(以及相关的校园)。电子邮件未创建。
这是documentation for the email.
这里是 documentation for the person.
知道我在这里遗漏了什么吗?
JSON API规范v1.0不支持批量创建。如果此特定 API 未实现不属于 JSON API 规范的附加功能,则您无法仅在一个请求中创建具有关联电子邮件的人员。
旁注:即将推出的 v1.1 版本可能会通过名为“操作”的功能支持此功能。您可以在 this pending pull request.
中找到更多详细信息
简而言之:就我得到的具体实施而言,您必须创建一个具有第一个请求的人,然后创建一个与另一个请求相关联的电子邮件地址。
我正在使用 Planning Center API,它的构建符合 JSON API 1.0 规范。
我们需要 post 一个人的数据到规划中心。 API 似乎要拆散一个人,从他们的 phone 电话号码和电子邮件来看。我是新手,所以我不确定您是否可以在同一个 cURL 请求中 post 它们,或者我是否需要 3 个请求。我的理解(可能是误导)是我可以在 POST 请求中 "include" 电子邮件和 phone 号码。
这是我的:
$person = '{
"data": {
"type": "Person",
"attributes": {
"first_name": "Test",
"last_name": "User"
},
"relationships": {
"primary_campus": {
"data": { "type": "PrimaryCampus", "id": "123" }
}
}
},
"include":{
"data": {
"type": "emails",
"attributes": {"address": "test@test.com"}
}
}
}';
$channel = curl_init();
curl_setopt( $channel, CURLOPT_URL, "https://api.planningcenteronline.com/people/v2/people" );
//curl_setopt( $channel, CURLOPT_RETURNTRANSFER, true);
curl_setopt( $channel, CURLOPT_USERPWD, $application_ID.":".$application_secret );
curl_setopt( $channel, CURLOPT_POST, true);
curl_setopt( $channel, CURLOPT_POSTFIELDS, $person);
curl_exec($channel);
echo $channel;
这似乎只创建了人的名字和姓氏(以及相关的校园)。电子邮件未创建。
这是documentation for the email. 这里是 documentation for the person.
知道我在这里遗漏了什么吗?
JSON API规范v1.0不支持批量创建。如果此特定 API 未实现不属于 JSON API 规范的附加功能,则您无法仅在一个请求中创建具有关联电子邮件的人员。
旁注:即将推出的 v1.1 版本可能会通过名为“操作”的功能支持此功能。您可以在 this pending pull request.
中找到更多详细信息简而言之:就我得到的具体实施而言,您必须创建一个具有第一个请求的人,然后创建一个与另一个请求相关联的电子邮件地址。