Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
eBay API-PHP中的FindItemAdvanced调用不返回任何响应_Php_Xml_Ebay Api - Fatal编程技术网

eBay API-PHP中的FindItemAdvanced调用不返回任何响应

eBay API-PHP中的FindItemAdvanced调用不返回任何响应,php,xml,ebay-api,Php,Xml,Ebay Api,我试图使用ebays搜索API执行一个简单的调用,当我调用时,我没有得到响应,问题是实际调用本身 $endpoint = 'http://open.api.ebay.com/shopping?'; $responseEncoding = 'XML'; $version = '631'; // API version number $appID = 'asdf3e6e3'; $itemType = "AllItemTypes"; $itemSort = "EndTime";

我试图使用ebays搜索API执行一个简单的调用,当我调用时,我没有得到响应,问题是实际调用本身

$endpoint = 'http://open.api.ebay.com/shopping?';  
$responseEncoding = 'XML';   
$version = '631';   // API version number
$appID   = 'asdf3e6e3'; 
$itemType  = "AllItemTypes";
$itemSort  = "EndTime";

//find items advanced
$apicalla  = "$endpoint"
    ."callname=FindItemsAdvanced"
    ."&version=$version"
    ."&siteid=0"
    ."&appid=$appID"
    ."&MaxEntries=10"
    ."&ItemSort=EndTime"
    ."&ItemType=AllItemTypes"
    ."&IncludeSelector=SearchDetails"
    ."&responseencoding=$responseEncoding";

    $resp = simplexml_load_file($apicalla);
此调用相当于

http://open.api.ebay.com/shopping?callname=FindItemsAdvanced&version=631&siteid=0&appid=asdf3e6e3&MaxEntries=10&ItemSort=EndTime&ItemType=AllItemTypes&IncludeSelector=SearchDetails&responseencoding=XML

我的问题是,我在做这个简单的搜索呼叫时遗漏了什么?

看起来您正在尝试使用易趣的,特别是
FindItemAdvanced
呼叫,我认为它在很久以前就被弃用了,可能不再起作用(我在呼叫参考中不再看到它)。您要做的是使用易趣的

首先,您需要稍微更改API端点和查询字符串参数(有关详细信息,请参阅前面提到的
FindItemAdvanced
调用参考,但我相信它看起来更像这样(我至少6个月没有接触过我的
FindItemAdvanced
调用,所以我没有测试过这个):

除此之外,要使用
findItemAdvanced
,必须按类别(
categoryId
)或关键字(
关键字
)指定要搜索的内容,因此出现“请指定查询!”错误消息

因此,您还需要添加以下内容(假设为关键字):

给你以下信息:

$endpoint = 'http://svcs.ebay.com/services/search/FindingService/v1?';  
$responseEncoding = 'XML';   
$version = '1.8.0';   // API version number (they're actually up to 1.11.0 at this point
$appID   = 'asdf3e6e3'; 
$itemSort  = "EndTimeSoonest";
$keywords = "something";    // make sure this is a valid keyword or keywords

//find items advanced
$apicalla  = "$endpoint"
    ."OPERATION-NAME=findItemsAdvanced"
    ."&SERVICE-VERSION=$version"
    ."&GLOBAL-ID=EBAY-US"
    ."&SECURITY-APPNAME=$appID"
    //."&MaxEntries=10"    // look for an equivalent for this (maybe paginationInput.entriesPerPage?)
    ."&sortOrder=$itemSort"
    //."&ItemType=AllItemTypes"   // not needed AFAICT, otherwise look at itemFilterType
    ."&descriptionSearch=true";
    ."& RESPONSE-DATA-FORMAT=$responseEncoding"
    ."&keywords=" . urlencode($keywords);

$resp = simplexml_load_file($apicalla);

最后一点注意:如果您想加载在结果中找到的特定项目的更多详细信息,您仍然需要使用购物API(特别是&calls)。因此,您可能最终会混合使用购物和查找API。

它应该类似于:

<?php
$url = 'http://svcs.ebay.com/services/search/FindingService/v1?OPERATION-NAME=findItemsAdvanced&SERVICE-VERSION=1.11.0&SECURITY-APPNAME=YOUR_APP_ID&RESPONSE-DATA-FORMAT=XML&REST-PAYLOAD&paginationInput.entriesPerPage=2&keywords=ipod&siteid=203&GLOBAL-ID=EBAY-IN';
$xml = file_get_contents( $url );
$xml = simplexml_load_string( $url );
?>

登录您的易趣开发者帐户并单击此链接:


希望这能有所帮助。

如果您尝试
echo file\u get\u contents($apicalla),您会得到什么回报吗
?如果没有,那么您就有了通信问题-url fopen可能被禁用,来自服务器的传出http请求可能被阻止,易趣可能已将您的IP列入黑名单,等等…很抱歉,它确实打印了一些内容,但我之前打过一个getMostBooks电话,似乎工作正常。它返回
2012-05-02T19:05:05.024Z故障请cify a query!请指定查询!10.1错误请求错误E771_CORE_BUNDLED_14784928_R1 771
这并没有解决问题,我认为通话串中缺少一些内容我得到了类似于
2012-05-02T22:04:39.405Z成功E771_CORE_BUNDLED_14784928_R1 150803837554 2012-05-02T22:04:39.000Z
的内容,然后是ebay URL SLO仔细查看您的查询,我发现您实际上是在尝试使用购物API中的旧
FindItemAdvanced
,我相信它已经永远消失了。您将希望使用Finding API中的
FindItemAdvanced
。我已经广泛地更新了我的答案。
$endpoint = 'http://svcs.ebay.com/services/search/FindingService/v1?';  
$responseEncoding = 'XML';   
$version = '1.8.0';   // API version number (they're actually up to 1.11.0 at this point
$appID   = 'asdf3e6e3'; 
$itemSort  = "EndTimeSoonest";
$keywords = "something";    // make sure this is a valid keyword or keywords

//find items advanced
$apicalla  = "$endpoint"
    ."OPERATION-NAME=findItemsAdvanced"
    ."&SERVICE-VERSION=$version"
    ."&GLOBAL-ID=EBAY-US"
    ."&SECURITY-APPNAME=$appID"
    //."&MaxEntries=10"    // look for an equivalent for this (maybe paginationInput.entriesPerPage?)
    ."&sortOrder=$itemSort"
    //."&ItemType=AllItemTypes"   // not needed AFAICT, otherwise look at itemFilterType
    ."&descriptionSearch=true";
    ."& RESPONSE-DATA-FORMAT=$responseEncoding"
    ."&keywords=" . urlencode($keywords);

$resp = simplexml_load_file($apicalla);
<?php
$url = 'http://svcs.ebay.com/services/search/FindingService/v1?OPERATION-NAME=findItemsAdvanced&SERVICE-VERSION=1.11.0&SECURITY-APPNAME=YOUR_APP_ID&RESPONSE-DATA-FORMAT=XML&REST-PAYLOAD&paginationInput.entriesPerPage=2&keywords=ipod&siteid=203&GLOBAL-ID=EBAY-IN';
$xml = file_get_contents( $url );
$xml = simplexml_load_string( $url );
?>