我是REST API的新手,我正在尝试开始使用Linnworks API作为我们的订单管理软件。作为一个起点,我试图使用一个帖子请求来简单地使用它的GUID获得1个项目的当前库存水平。
此请求的文档可在此处查看:
http://apidoc.linnworks.net/Home/ApiMethod/GetStockLevel
我已经完成了帖子请求的第一阶段,使用用户ID和密码发出了令牌,如下所述:
http://apidoc.linnworks.net/Home/Page/Auth%20Introduction
我现在尝试使用stream_context_create创建一个帖子请求,以及我一直在阅读的很多博客帖子中的信息。我写了以下代码,但一直是空白屏幕甚至没有警告或错误消息。谁能看到我错在哪里?我是新手,所以我可能会遗漏一些重要的东西。出于安全考虑,我省略了我的令牌:
<?php
$postdata = array(
'stockItemId' => 'bb0ef47f-f3fe-47b4-8863-ddfe8bc69b29'
);
$opts = array('http' =>
array(
'method' => 'POST',
'protocol_version' => 1.1,
'header' =>
'Authorization: Token my-token-here\r\n'.
'Host: eu1.linnworks.net\r\n'.
'Content-Type: application/x-www-form-urlencoded\r\n'.
'Accept-Language: en\r\n',
'content' => $postdata
)
);
$context = stream_context_create($opts);
$result = file_get_contents('https://eu1.linnworks.net//api/Stock/GetStockLevel',false, $context);
echo $result;
?>
当对每个变量执行var_dump时,如果这有帮助,我会得到以下内容:
Var Dump:$ postdata
array(1) { ["stockItemId"]=> string(36) "bb0ef47f-f3fe-47b4-8863-ddfe8bc69b29" }
Var Dump:$ opts
array(1) { ["http"]=> array(4) { ["method"]=> string(4) "POST" ["protocol_version"]=> float(1.1) ["header"]=> string(162) "Authorization: Token my-token-here\r\nHost: eu1.linnworks.net\r\nContent-Type: application/x-www-form-urlencoded\r\nAccept-Language: en\r\n" ["content"]=> array(1) { ["stockItemId"]=> string(36) "bb0ef47f-f3fe-47b4-8863-ddfe8bc69b29" } } }
Var Dump:$ context
resource(2) of type (stream-context)
Var Dump:$ result
bool(false)
任何帮助将不胜感激
答案 0 :(得分:1)
我刚刚开始使用Linnworks进行开发,至少可以说文档是无益的。
但是,根据我的经验,有两点需要注意。一,要获得AuthorisationByApplication,您必须使用不同的服务器来返回有效的令牌:
另一个来自应用程序授权帐户的请求。以下是我获取帐户类别的功能:
$paras = array(
'token' => $u->Token
);
getLinn('Inventory/GetCategories', $paras);
function getLinn($method, $paras)
{
$url = 'https://eu1.linnworks.net/api/' . $method;
$aHttp = array(
'http' => array(
'method' => 'POST',
'content' => '',
'header' => ["Authorization: " . $paras['token'],
"Transfer-Encoding: chunked",
"Content-Encoding: chunked",
"Content-type: application/x-www-form-urlencoded"
]
)
);
//print_r($aHttp);
$context = stream_context_create($aHttp);
$contents = file_get_contents($url, false, $context);
return $contents;
}
希望这有助于将来的某些人:)