【发布时间】:2018-03-13 09:54:07
【问题描述】:
我有这段代码,我尝试通过 API 列出我的网上商店中的所有文章(此处为文档http://api.textalk.se/webshop/)
我制作了类似的脚本,女巫从相同的 API 接收命令,它运行良好,但我不会开始工作。
任何想法我做错了什么?
<?php
class TextalkApi
{
public function AdminLogin($username, $password) {
$url = 'https://shop.textalk.se/backend/jsonrpc/v1/';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch,CURLOPT_HTTPHEADER, array('Content-Type: application/json-rpc'));
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"jsonrpc":"2.0", "id":1, "method":"Admin.login", "params":["' . $username . '","' . $password . '"]}');
$data = json_decode(curl_exec($ch), true);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if($http_code != 200)
throw new Exception('Error : Admin Login Failed');
return $data['result'];
}
public function GetArts($admin_auth_token, $webshop_id) {
$url = 'https://shop.textalk.se/backend/jsonrpc/v1/?auth=' . $admin_auth_token . '&webshop=' . $webshop_id;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch,CURLOPT_HTTPHEADER, array('Content-Type: application/json-rpc'));
// this below i beleive dosen't work
curl_setopt($ch, CURLOPT_POSTFIELDS,
'{"jsonrpc":"2.0","method":"Article.list", {"limit": 5}],"id":1}');
// this above i beleive dosen't work
$data = json_decode(curl_exec($ch), true);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if($http_code != 200)
throw new Exception('Error : Failed to get orders');
return $data['result'];
}
}
?>
在这个 POSTFIELD 中我写“// 这下面我相信它不起作用”我想把它正确地放这个
Article.list(true, {"limit": 5})
查看文档http://api.textalk.se/webshop/interface/TryIt/
在我的另一个看起来像这样的 PHP 文件中,我希望输出结果
<?php
require_once('the_file_with_the_class_TextalkApi.php');
$textalk = new TextalkApi();
//Working demo credentials
$admin_auth_token = $textalk->AdminLogin('pon85x@gmail.com', 'abc123');
$webshop_id = '77140';
$arts = $textalk->GetArts($admin_auth_token, $webshop_id);
echo '<pre>';print_r($arts);echo '</pre>';
var_dump($arts);
?>
但是结果是NULL
【问题讨论】:
-
在没有json_decode的情况下尝试
var_dump(curl_exec($ch)) -
最好总是关闭 cURL 的
curl_close($ch);