使用LinnWorksAPI和Inventory/CreateInventoryItemTitles的PHP Rest请求

使用LinnWorksAPI和Inventory/CreateInventoryItemTitles的PHP Rest请求,php,rest,api,post,Php,Rest,Api,Post,我正在尝试使用LinnWorksAPI发出post请求 更具体地说,我想推出一个新的标题,但我无法让它发挥作用。我正在查询他们的系统,所以我的格式显然有问题 $CreateTitle = json_decode(Factory::GetResponse("Inventory/CreateInventoryItemTitles","inventoryItemTitles=[{StockItemId=00000000-4683-0000-88dc-00880000fc09&Source

我正在尝试使用LinnWorksAPI发出post请求


更具体地说,我想推出一个新的标题,但我无法让它发挥作用。我正在查询他们的系统,所以我的格式显然有问题

$CreateTitle = json_decode(Factory::GetResponse("Inventory/CreateInventoryItemTitles","inventoryItemTitles=[{StockItemId=00000000-4683-0000-88dc-00880000fc09&Source=Test&SubSource=Test&Title=Test}]",$authorization->Token, "https://api.linnworks.net/"));
Linnworks支持团队已回复:

为rowId生成随机guid。这是我通过罚款的请求机构:

inventoryItemTitles=[{"StockItemId":"797b268d-4fa5-4714-a96d-00d45608f2d6","Title":"New Title","Source":"EBAY","SubSource":"EBAY4","pkRowId":"ccbd77f6-f04a-404b-af36-f859747d5c20"}]
但这不是在php中,他们不会提供任何php开发方面的帮助

因此,根据布莱恩的建议,我已经更新了这一点,但我是;仍然遇到HTTP/1.1 400错误请求。很明显,他仍然在做错事

$object = [
 "StockItemId" => "00000000-4683-0000-88dc-00880000fc09",
 "Title" => "value2",
 "Source" => "value2",
 "SubSource" => "value2" 
 ];

$encoded = json_encode($object);
$CreateTitle = json_decode(Factory::GetResponse("Inventory/CreateInventoryItemTitles",$encoded,$authorization->Token, "https://api.linnworks.net/"));

// print_r($encoded);

您需要像这样形成您的对象:

<?php

 $object = [
    [
    "pkRowId" => "5c6dc399-f476-49a5-8c64-771310a25691",
    "Source" => "sample string 2",
    "SubSource" => "sample string 3",
    "Title" => "sample string 4",
    "StockItemId" => "5695ab85-829d-4f5c-bd88-f0b6943fd577"
  ],
  [
    "pkRowId" => "5c6dc399-f476-49a5-8c64-771310a25691",
    "Source" => "sample string 2",
    "SubSource" => "sample string 3",
    "Title" => "sample string 4",
    "StockItemId" => "5695ab85-829d-4f5c-bd88-f0b6943fd577"
  ]

];

 $encoded = json_encode($object);

 print_r($encoded);

这是您在REST调用中作为有效负载发送的内容
inventoryItemTitles=
,它们需要一个对象数组。

结果是,在我的示例中将标题列为“示例字符串4”,失败是由一个符号和引起的urlencode'

您没有发送php,您需要构造JSON并将其序列化为有效负载发送。。。到API地址。。。json_decode用于当您得到响应时。。。您需要对正确格式的对象进行json_编码。我不知道您在php中使用的是什么框架,但这不是我以前遇到过的。。。我建议您查看如何发送有效负载。。。我不熟悉
Factory::GetResponse
我在做这类事情时使用cURL。。。您的链接还声明HTTP位置为:
“https://eu1.linnworks.net//api/Inventory/CreateInventoryItemTitles“
。为什么要发布到
“https://api.linnworks.net/“
?php,不确定如何响应其他编写的所有内容。如果我尝试运行您的代码:
致命错误:未捕获错误:未找到类“Factory”
。这是因为它不是原生php。如果你想得到帮助,需要更多信息。并将php框架添加到标记中。我已经回答了您最初的问题,即如何获得所需的格式。“我正在查询他们的系统,所以我的格式显然有问题。”我已经用您的建议更新了问题。
[{"pkRowId":"5c6dc399-f476-49a5-8c64-771310a25691","Source":"sample string 2","SubSource":"sample string 3","Title":"sample string 4","StockItemId":"5695ab85-829d-4f5c-bd88-f0b6943fd577"},
{"pkRowId":"5c6dc399-f476-49a5-8c64-771310a25691","Source":"sample string 2","SubSource":"sample string 3","Title":"sample string 4","StockItemId":"5695ab85-829d-4f5c-bd88-f0b6943fd577"}]