ich PHPoAuthLib um bin mit pro their examplenur für Quickbooks API Zugriffstoken einmal bekommen
an die API Quickbooks zu verbinden Wenn ich ihrem Beispiel folgen, die erste Anforderung, die ich an die API machen funktioniert perfekt:
$result = json_decode($quickbooksService->request($url));
echo 'result: <pre>' . print_r($result, true) . '</pre>';
jedoch in ihrem Beispiel verwenden sie $_GET['oauth_token']
und $_GET['oauth_verifier']
ein Zugriffstoken zu verlangen, und diese Werte sind auf dem $_GET
Server-Variable während des einzigen Rückrufs von Quickbooks Online sofort nach meiner App autorisiert wurde, zur Verfügung.
Für zukünftige Anforderungen gibt es keine solche Beispiele auf PHPoAuthLib der docs, so habe ich versucht, eine schnelle Homebrew Lösung:
- Speichern Sie die Antwort von QBO irgendwo
if (!empty($_GET['oauth_token']) {
file_put_contents("token.txt", json_encode([
'oauth_token' => $_GET['oauth_token'],
'oauth_verifier' => $_GET['oauth_verifier'],
'realm_id' => $_GET['realmId']
]));
}
- Diese Antwort später erneut verwenden
$token = json_decode(file_get_contents("token.txt"));
$quickbooksService->requestAccessToken(
$token->oauth_token,
$token->oauth_verifier
// $token->getRequestTokenSecret() is not necessary - it will be automatically populated
);
// At this point my app crashes and return a 500 error
// Further code does not run
Der Fehler I erhalten ist:
TokenResponseException StreamClient.php in Leitung 68: ausgefallene Ressource anzufordern. HTTP-Code: HTTP/1.1 401 Unauthorized
Denken Sie daran, dass das Token und Verifizierer Arbeit perfekt, wenn ich sie sofort verwenden, nachdem die App autorisiert ist. Wenn ich sie in einer Datei speichern und 30 Sekunden später erneut verwenden möchte, geschieht dies.
ich denke, es könnte ein fundamentales Missverständnis über OAuth 1.0