问题描述
所以,我遇到了问题,因为我没有 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 (将#修改为@)