为了使用 Etsy 进行 OAuth,我在 C# 中尝试了无数解决方案来至少启动身份验证过程(即获取登录 URL):
例如
mashery.com,http://term.ie/oauth/example/client.php和问题 #8321034
但反应总是一样的:
oauth_problem=signature_invalid&debug_sbs=GET&https%3A%2F%2Fopenapi.etsy.com%2Fv2%2Foauth%2Frequest_token&oauth_consumer_key%3D...my-consumer-key...%26oauth_nonce%3D2de91e1361d1906bbae04b15f42ab38d%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1502362164%26oauth_version %3D1.0%26scope%3Dlistings_w%2520listings_r
所以我求助于可怕的 PHP 世界......
在我的机器上,我安装了以下(Windows 10):
XAMPP (xampp-win32-7.1.7-0-VC14-installer) with default options
JDK (jdk-8u144-windows-i586)
JRE (jre-8u144-windows-i586)
php_oauth.dll ([php_oauth-2.0.2-7.1-ts-vc14-x86.zip][4]) and copying it to C:\xampp\php\ext
[cacert.pem][4], (dated Jun 7 03:12:05 2017) and coping it to the following directories:
C:\xampp\perl\vendor\lib\Mozilla\CA
C:\xampp\phpMyAdmin\vendor\guzzle\guzzle\src\Guzzle\Http\Resources
Apache 和 Tomcat 不会从 XAMPP 开始运行,因为它说端口 443 和 80 正在被使用/阻止,所以我适时将它们更改为 444 和 122
C:\xampp\apache\conf\extra\httpd-ssl.conf
C:\xampp\apache\conf\httpd.conf
到目前为止一切顺利,但是当我在浏览器中运行以下脚本时(http://localhost:444/dashboard/etsy.php):
<?php
$base_uri = 'https://openapi.etsy.com';
$api_key = 'my-etsy-api-key';
$secret = 'my-etsy-api-secret';
$oauth = new OAuth($api_key, $secret, OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_URI);
$req_token = $oauth->getRequestToken($base_uri .= "/v2/oauth/request_token?scope=listings_w%20transactions_r", 'oob');
$login_url = $req_token['login_url'];
print "Please log in and allow access: $login_url \n\n";
$verifier = readline("Please enter verifier: ");
$verifier = trim($verifier);
$oauth->setToken($req_token['oauth_token'], $req_token['oauth_token_secret']);
$acc_token = $oauth->getAccessToken($base_uri .= "/v2/oauth/access_token", null, $verifier);
$oauth_token = $acc_token['oauth_token'];
$oauth_token_secret = $acc_token['oauth_token_secret'];
$oauth->setToken($oauth_token, $oauth_token_secret);
print "Token: $oauth_token \n\n";
print "Secret: $oauth_token_secret \n\n";
?>
我收到以下错误消息:
致命错误:未捕获的 OAuthException:在 C:\xampp\htdocs\dashboard\etsy.php:8 中使请求失败(对等证书无法使用给定的 CA 证书进行身份验证)堆栈跟踪:#0 C:\xampp\htdocs\dashboard\ etsy.php(8): OAuth->getRequestToken(' https://openapi ...', 'oob') #1 {main} 在第 8 行的 C:\xampp\htdocs\dashboard\etsy.php 中抛出
我已经尝试使用每个线程安全的 x86 版本的 OAuth ( http://windows.php.net/downloads/pecl/releases ) 运行脚本 - 停止,重新启动 Apache) 但没有运气。
我无计可施。
如何解决此对等证书问题?