ebay api GeteBayDetails请求没有密码,也没有令牌错误

时间:2014-02-14 14:52:30

标签: php api curl ebay

我正在尝试向交易api发出GeteBayDetails请求,以便我可以使用lms在批量AddFixedPriceItem调用中找到可接受的值字段。我正在使用curl进行HTTP Post请求。

所以我将请求发送到以下网址

  

https://api.sandbox.ebay.com/ws/api.dll

我使用的标题是:

  

X-EBAY-API-COMPATIBILITY-LEVEL:800

     

X-EBAY-API-SITEID:3

     

X-EBAY-API-DEV-NAME:dev_key_here

     

X-EBAY-API-APP-NAME:App_key_here

     

X-EBAY-API-CERT-NAME:Cert_name_here

     

X-EBAY-API-CALL-NAME:GeteBayDetails

     

X-EBAY-API-DETAIL-LEVEL:0

请求正文

<?xml version="1.0" encoding="utf-8"?>
<GeteBayDetailsRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<RequestToken>My_Sandbox_user_token</RequestToken>
<RequestPassword>my_sandbox_user_password</RequestPassword>
<DetailName>ShippingServiceDetails</DetailName></GeteBayDetailsRequest>

我得到的回应是

<?xml version="1.0" encoding="UTF-8"?>
<GeteBayDetailsResponse xmlns="urn:ebay:apis:eBLBaseComponents">
<Timestamp>2014-02-14T14:15:50.792Z</Timestamp>
<Ack>Failure</Ack>
<Errors><ShortMessage>No password and no token.</ShortMessage>
<LongMessage>No XML &lt;RequestPassword&gt; or &lt;RequestToken&gt; was found in XML Request.</LongMessage>
<ErrorCode>930</ErrorCode>
<SeverityCode>Error</SeverityCode>
<ErrorClassification>RequestError</ErrorClassification>
</Errors>
<Version>855</Version>
<Build>E855_INTL_API_16631620_R1</Build>
</GeteBayDetailsResponse>

我不明白为什么它要求一个RequestPassword和令牌,我在响应开始要求它们之后将它们添加到正文中但它似乎只是忽略它们,api文档似乎没有暗示它需要它们,而我不要求用户具体细节。有谁知道发生了什么?有什么建议吗?

谢谢

2 个答案:

答案 0 :(得分:6)

您希望将沙盒令牌包含在RequesterCredentials XML标记内的eBayAuthToken标记中。所以喜欢这个

<RequesterCredentials>
<eBayAuthToken> Your token here </eBayAuthToken>
</RequesterCredentials>

那应该可以解决你的问题。确保删除了无效的授权标签

答案 1 :(得分:0)

我相信你也可以省略

<RequesterCredentials>
<eBayAuthToken> Your token here </eBayAuthToken>
</RequesterCredentials>

来自请求的正文/内容,而不是

"X-EBAY-API-IAF-TOKEN": "Y0uRAcCe$$T0k3n"
请求标题中的