QuickBooks PHP SDK Нечетное взаимодействие Обновить токен - PullRequest
0 голосов
/ 14 января 2019

У нас есть приложение, подключенное к QuickBooks Online OAuth2 Workflow. Все в рабочем состоянии, кроме того, когда пытаетесь обновить ключ доступа пользователя.

В соответствии с документацией PHP SDK наш токен обновления был вызван до того, как пользователь синхронизировался с QuickBooks, и выглядел следующим образом:

$this->data_service = DataService::Configure(array(
                'auth_mode' => 'oauth2',
                'ClientID' => xxx,
                'ClientSecret' => xxx,
                'refreshTokenKey' => xxx,
                'QBORealmID' => xxx,
                'baseUrl' => 'production',
);
$oauth2_login_helper = $this->data_service->getOAuth2LoginHelper();
$refreshed_token_object = $oauth2_login_helper->refreshToken();

// Update DB with new access_token, refresh_token

Как ни странно, использование этого способа привело к 401: invalid_grant, если истек срок доступа (час или более). Стоит упомянуть, что такое поведение происходило только в производстве. В наших локальных средах и средах разработки выше успешно обновлены ключи oauth2.

После некоторой борьбы я в итоге изменил вышеприведенное на простое:

$oauth2_login_helper = new OAuth2LoginHelper(xxx, xxx);
$access_token_object = 
$oauth2_login_helper->refreshAccessTokenWithRefreshToken(
      xxx
);

// Update DB with access_token, refresh_token

Что, к сожалению, работает в производстве, как и ожидалось. Я хотел обратиться в случае, если я что-то упустил или у меня есть потенциальная проблема здесь.

...