如何解决Etsy API 分页 - 不知道如何访问其他页面
所以,我遇到了问题,因为我没有 OAuth 1,所以我不得不努力访问 ETSY API。
我终于有了这个:
我的函数 __construct() :
parent::__construct();
$this->allowForUser();
$this->etsyDb = new EtsyordersModel;
$this->client = new Etsy([
'identifier' => getApp()->getConfig('identifier'),'secret' => getApp()->getConfig('secret'),'scope' => 'listings_r transactions_r','callback_uri' => 'http://*****-*****.loc/etsyapp/next','access_token' => getApp()->getConfig('access_token'),'access_token_secret' => getApp()->getConfig('access_token_secret'),]);
这是我如何获取 URL 以访问我的 JSON 结果:
$key = rawurlencode($oauthtoken) . "&" . rawurlencode($tokensecret);
$method = "GET";
$baseurl = "https://openapi.etsy.com/v2/shops/24749672/receipts/";
$nonce = "1234";
$timeNow = time();
$oauthversion = '1.0';
$paramstring = "oauth_consumer_key=" . $oauthconsumerkey . "&oauth_nonce=" . $nonce . "&oauth_signature_method=HMAC-SHA1" . "&oauth_timestamp=" . $timeNow . "&oauth_token=" . $clientsecret . "&oauth_version=" . $oauthversion;
//
// Signature GET to retrieve signature OAuth
$encodeurl = $method . "&" . rawurlencode($baseurl) . "&" . rawurlencode($paramstring);
$signature = hash_hmac( 'sha1',$encodeurl,$key,TRUE );
$signature = base64_encode( $signature );
// url JSON shop ETSY
$curlurl = $baseurl . "?" . $paramstring . "&oauth_signature=" . $signature;
// get JSON content in $orders
$orders = file_get_contents($curlurl);
所以我得到了我的 JSON :
我有 90++ 个项目,但由于分页,它只显示了 25 个项目。
我尝试将 active?limit=100&offset=0
添加到我的 $baseurl(在它的末尾,作为签名计算的参数),但它显示 oauth_problem=signature_invalid&
。我试着把它放在 $paramstring
相反,但结果相同。
如何显示所有结果,或者如何访问分页的第 2、3 等页面?
我使用的是 PHP 7.4、XAMPP(最后一个版本之一),我没有 OAuth 1,所以我使用了包 Y0lk\OAuth1 和 thePHPleague\oauth1-client 的组合。
感谢您抽出宝贵时间。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。