我正在使用OAuth库连接到我的Etsy商店(etsy.com)并尝试检索有关已售出订单的一些信息.
这是库:https://github.com/Lusitanian/PHPoAuthLib/blob/master/examples/etsy.php
但是,在"允许访问"后,我一直收到错误消息.我收到一个令牌,但当我允许访问时,问题就出现了.
这是完整的错误:
Fatal error: Uncaught exception 'OAuth\Common\Http\Exception\TokenResponseException' with message 'file_get_contents(http://openapi.etsy.com/v2/private/users/__SELF__): failed to open stream: HTTP request failed!
HTTP/1.1 400 Bad Request ' in /hermes/bosoraweb013/b1151/ipg.tahara/APIs/PHPoAuthLib-master/src/OAuth/Common/Http/Client/StreamClient.php:70 Stack trace: #0 /hermes/bosoraweb013/b1151/ipg.tahara/APIs/PHPoAuthLib-master/src/OAuth/OAuth1/Service/AbstractService.php(137):
OAuth\Common\Http\Client\StreamClient->retrieveResponse(Object(OAuth\Common\Http\Uri\Uri), NULL, Array, 'GET') #1 /hermes/bosoraweb013/b1151/ipg.tahara/APIs/PHPoAuthLib-master/examples/etsy.php(47):
OAuth\OAuth1\Service\AbstractService->request('/private/users/...') #2 {main} thrown in /hermes/bosoraweb013/b1151/ipg.tahara/APIs/PHPoAuthLib-master/src/OAuth/Common/Http/Client/StreamClient.php on line 70
Run Code Online (Sandbox Code Playgroud)
有人会有任何意见来确定问题是什么吗?
尝试使用USPS Tracking API检索USPS订单的状态时抛出错误.
但是,当运行我根据USPS手册构建的代码时,我收到以下错误:" 80040B19XML语法错误:请检查XML请求以查看是否可以解析.USPSCOM :: DoAuth "
链接到手册:https://www.usps.com/business/web-tools-apis/track-and-confirm-v1-3a.htm
这是我的代码:
$trackingNumber = 123456;
$url = "http://production.shippingapis.com/shippingAPI.dll";
$service = "TrackV2";
$xml = rawurlencode("
<TrackRequest USERID='MYID'>
<TrackID ID=".$trackingNumber."></TrackID>
</TrackRequest>");
$request = $url . "?API=" . $service . "&XML=" . $xml;
// send the POST values to USPS
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$request);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_HTTPGET, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// parameters to post
$result = curl_exec($ch);
//var_dump($result);
curl_close($ch);
$response = new SimpleXMLElement($result);
//print_r($result);
$deliveryStatus = $response->TrackResponse->TrackInfo->Status;
echo …Run Code Online (Sandbox Code Playgroud) 我正在使用一个库连接到我的ETSY商店,并从收据中提取数据,将它们带入我的个人网站(数据库).
使用OAuth发出请求后,我到ETSY网站"允许访问"
https://www.etsy.com/images/apps/documentation/oauth_authorize.png
然后,我需要手动点击"允许访问",我的请求将完成,并将显示请求的数据.
我想避免手动点击"允许访问"的过程,因为我希望我的个人网站自动显示从ETSY订单中提取的信息.
这是我目前的页面etsyRequest.php的代码:
$credentials = new Credentials(
$servicesCredentials['etsy']['key'],
$servicesCredentials['etsy']['secret'],
$currentUri->getAbsoluteUri()
);
// Instantiate the Etsy service using the credentials, http client and storage mechanism for the token
/** @var $etsyService Etsy */
$etsyService = $serviceFactory->createService('Etsy', $credentials, $storage);
if (!empty($_GET['oauth_token'])) {
$token = $storage->retrieveAccessToken('Etsy');
// This was a callback request from Etsy, get the token
$etsyService->requestAccessToken(
$_GET['oauth_token'],
$_GET['oauth_verifier'],
$token->getRequestTokenSecret()
);
// Send a request now that we have access token
$result2 = json_decode($etsyService->request('/receipts/111111'));
//echo 'result: <pre>' . print_r($result, …Run Code Online (Sandbox Code Playgroud) 我有一个来自PHP类的对象,我在这个数组中加载:
$result2 = json_decode($etsyService->request('/receipts/12121212'));
Run Code Online (Sandbox Code Playgroud)
当我print_r的数组$ result2,我得到:
stdClass Object
(
[count] => 1
[results] => Array
(
[0] => stdClass Object
(
[receipt_id] => 1212121212
[order_id] => 1111111
[seller_user_id] => 2525252
[buyer_user_id] => ABCD
[creation_tsz] => 0000000
Run Code Online (Sandbox Code Playgroud)
我的问题是,我怎么能echo单独使用其中一个字段?例如,只需回显seller_user_id(即2525252).