我有一個問題,使用快速入門的untuit API即時通訊嘗試構建一個允許用戶調用API的Wordpress插件。然而,當我嘗試註冊即時得到一個奇怪的錯誤oAuth登錄到Quickbooks API
define('OAUTH_CONSUMER_KEY', 'qyprdCeT1XrfB2naZuXXXXXXXXXX');
define('OAUTH_CONSUMER_SECRET', 'AItwjqmICEnr9nQNzkTc8nzC24tXXXXXXXXXXX');
define('OAUTH_REQUEST_URL', 'https://oauth.intuit.com/oauth/v1/get_request_token');
define('OAUTH_ACCESS_URL', 'https://oauth.intuit.com/oauth/v1/get_access_token');
define('OAUTH_AUTHORISE_URL', 'https://appcenter.intuit.com/Connect/Begin');
$schema = (@$_SERVER["HTTPS"] == "on") ? "https://" : "http://";
define('CALLBACK_URL', $schema.$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]);
$oauth = new OAuth(OAUTH_CONSUMER_KEY, OAUTH_CONSUMER_SECRET, OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_URI);
$oauth->enableDebug();
try {
if(isset($_POST['posted']) && !isset($_GET['oauth_token'])){
$request_token = $oauth->getRequestToken(OAUTH_REQUEST_URL, CALLBACK_URL);
$_SESSION['secret'] = $request_token['oauth_token_secret'];
$vl->redirectUri = OAUTH_AUTHORISE_URL .'?oauth_token='.$request_token['oauth_token'];
}
if(isset($_GET['oauth_token']) && isset($_GET['oauth_verifier'])){
$oauth->setToken($_GET['oauth_token'], $_SESSION['secret']);
$access_token = $oauth->getAccessToken(OAUTH_ACCESS_URL);
$vl->debug = print_r($access_token, true);
}
}
catch(OAuthException $e) {
$vl->debug = print_r($e, true);
}
當我嘗試這樣我只是得到修訂完整的日誌(這是OAuth的連接運行時錯誤)
所以現在我得到的唯一問題是簽名無效。所以這一定是來自URL的東西,但oAuth PCEL類正在處理這個,所以我不知道錯誤在哪裏。
OAuthException Object
(
[message:protected] => Invalid auth/bad request (got a 401, expected HTTP/1.1 20X or a redirect)
[string:Exception:private] =>
[code:protected] => 401
[file:protected] => /home/ebers/www/wordpress/offPeakTraining/wp-content/plugins/QuickBooks/qb.php
[line:protected] => 71
[trace:Exception:private] => Array
(
[0] => Array
(
[file] => /home/ebers/www/wordpress/offPeakTraining/wp-content/plugins/QuickBooks/qb.php
[line] => 71
[function] => getAccessToken
[class] => OAuth
[type] => ->
[args] => Array
(
[0] => https://oauth.intuit.com/oauth/v1/get_access_token
)
)
[1] => Array
(
[function] => qbwp_plugin_options
[args] => Array
(
[0] =>
)
)
[2] => Array
(
[file] => /home/ebers/www/wordpress/offPeakTraining/wp-includes/plugin.php
[line] => 429
[function] => call_user_func_array
[args] => Array
(
[0] => qbwp_plugin_options
[1] => Array
(
[0] =>
)
)
)
[3] => Array
(
[file] => /home/ebers/www/wordpress/offPeakTraining/wp-admin/admin.php
[line] => 217
[function] => do_action
[args] => Array
(
[0] => settings_page_qbwpapi
)
)
[4] => Array
(
[file] => /home/ebers/www/wordpress/offPeakTraining/wp-admin/options-general.php
[line] => 10
[args] => Array
(
[0] => /home/ebers/www/wordpress/offPeakTraining/wp-admin/admin.php
)
[function] => require_once
)
)
[previous:Exception:private] =>
[lastResponse] => oauth_problem=signature_invalid
[debugInfo] => Array
(
[sbs] => GET&https%3A%2F%2Foauth.intuit.com%2Foauth%2Fv1%2Fget_access_token&oauth_consumer_key%3DqyprdCeT1XrfB2naZu0o7bKSFL3MyK%26oauth_nonce%3D12533744765415534dd89b43.77283483%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1410683725%26oauth_token%3Dqyprdn36hBYpc75UmnkItTyxGBVDu09NhWlO4COKnRyq03xY%26oauth_verifier%3D63vgjdf%26oauth_version%3D1.0
[headers_recv] => HTTP/1.1 401 Unauthorized
Date: Sun, 14 Sep 2014 08:35:08 GMT
Server: Apache
WWW-Authenticate: OAuth oauth_problem="signature_invalid"
Cache-Control: no-cache, no-store
Pragma: no-cache
Content-Length: 31
Connection: close
Content-Type: text/plain
X-Pad: avoid browser bug
[body_recv] => oauth_problem=signature_invalid
)
[xdebug_message] =>
OAuthException: Invalid auth/bad request (got a 401, expected HTTP/1.1 20X or a redirect) in /home/ebers/www/wordpress/offPeakTraining/wp-content/plugins/QuickBooks/qb.php on line 71
Call Stack:
0.0009 828960 1. {main}() /home/ebers/www/wordpress/offPeakTraining/wp-admin/options-general.php:0
0.0015 954840 2. require_once('/home/ebers/www/wordpress/offPeakTraining/wp-admin/admin.php') /home/ebers/www/wordpress/offPeakTraining/wp-admin/options-general.php:10
0.4527 53686792 3. do_action() /home/ebers/www/wordpress/offPeakTraining/wp-admin/admin.php:217
0.4527 53688976 4. call_user_func_array() /home/ebers/www/wordpress/offPeakTraining/wp-includes/plugin.php:429
0.4527 53689032 5. qbwp_plugin_options() /home/ebers/www/wordpress/offPeakTraining/wp-includes/plugin.php:429
0.4534 53693984 6. OAuth->getAccessToken() /home/ebers/www/wordpress/offPeakTraining/wp-content/plugins/QuickBooks/qb.php:71
)
我正在使用他們的庫,而不是用於登錄oAuth部分。因爲那裏的路徑使用oAuth.php我不能使用這樣的文件位置,因爲它是管理端的一個wordpress插件的一部分 – 2014-09-14 08:13:04
oAuth系統由pecl oAuth處理,問題恰恰在於發送帶有query_stirng的url它的結束。如果我urlencode的地址,以便不打破查詢字符串,它試圖重定向回到我的頁面。 – 2014-09-14 08:23:12
我使用http://runnable.com/UtEZ4OpSEoFzAACs/quickbooks-oauth-%2B-list-customers-example-for-php-intuit-intuit-partner-platform-and-ipp此代碼工作正常,當我放棄這一切都成爲一個簡碼,所以我知道他的代碼工作。它似乎只是''' – 2014-09-15 12:27:07