Я нашел класс API (https://github.com/eddieharrison/sageone-api-php) в PHP для облачного программного обеспечения SageOne Accounts.
Я использовал код, найденный в auth.php
с моими приложениями CLIENT_ID и CLIENT_SECRET, чтобы получить код доступа.
Затем я попробовал этот код (/examples/get-ledger-accounts.php):
define('SAGE_CLIENT_ID', 'my client id');
define('SAGE_CLIENT_SECRET', 'my client secret');
// If you do not already have an access token please see:
// /examples/auth.php
define('SAGE_ACCESS_TOKEN', 'access code from auth.php');
$client = new SageOne(SAGE_CLIENT_ID, SAGE_CLIENT_SECRET);
$client->setAccessToken(SAGE_ACCESS_TOKEN);
$result = $client->getLedgerAccounts();
echo '<pre>';
print_r($result);
echo '</pre>';
Однако при тестировании этого кода я получаю следующее:
string(26) "{"error":"invalid_token"} " int(0)
Array
(
[error] => invalid_token
)
Кто-нибудь знает, что это значит и как я могу это исправить, чтобы получить доступ к данным наших учетных записей из SageOne?
Предполагая, что вы зарегистрировались через developers.sageone.com, invalid_token
ошибка ожидается, если вы попытаетесь использовать токен по истечении срока действия, который составляет 1 час после выдачи.
Еще одна вещь, которую я заметил, это то, что библиотека, которую вы упомянули, не поддерживает подписание запроса что требуется.
Вы работаете над клиентским приложением или бухгалтерской интеграцией?
Я установил оболочку для Sage One Accounting API v 1.1.1, которая использует ключ Api вместо clientId / accessToken. Это будет работать лучше, если вы собираетесь на автоматизацию.
https://github.com/Sharnw/sage-one-accounting-api
Документация по API здесь: https://accounting.sageone.co.za/Marketing/DeveloperProgram.aspx