尝试使用 QuickBooks Online PHP SDK 时遇到错误

问题描述

我尝试运行示例,但此错误不断出现:

PHP 致命错误:在类常量中不允许使用数组 /home/sample/public_html/temp/test/quickbook/QuickBooks-V3-PHP-SDK-6.0.0/src/Core/CoreConstants.PHP 第 17 行。

我下载了源代码并正在运行他们的示例。

有什么办法可以解决这个错误吗? 我正在运行此示例:

<?PHP
//Replace the line with require "vendor/autoload.PHP" if you are using the Samples from outside of _Samples folder
include('../config.PHP');

use QuickBooksOnline\API\Core\ServiceContext;
use QuickBooksOnline\API\DataService\DataService;
use QuickBooksOnline\API\PlatformService\PlatformService;
use QuickBooksOnline\API\Core\Http\Serialization\XmlObjectSerializer;


$dataService = DataService::Configure(array(
  'auth_mode'       => 'oauth2','ClientID'        => "XXXXXXXXXXXXXXXXX",'ClientSecret'    => "XXXXXXXXXXXXXXXXX",'accesstokenKey'  => "XXXXXXXXXXXXXXXXX",'refreshTokenKey' => 'XXXXXXXXXXXXXXXXX','QBORealmID'      => "XXXXXXXXXXXXXXXXX",'baseUrl'         => "development"
));

$dataService->setLogLocation("/newFolderForLog");


$OAuth2LoginHelper = $dataService->getoAuth2LoginHelper();

$accesstoken = $OAuth2LoginHelper->refreshToken();
$error = $OAuth2LoginHelper->getLastError();
if ($error) {
    echo "The Status code is: " . $error->getHttpStatusCode() . "\n";
    echo "The Helper message is: " . $error->getoAuthHelperError() . "\n";
    echo "The Response message is: " . $error->getResponseBody() . "\n";
    return;
}
$dataService->updateOAuth2Token($accesstoken);


$dataService->setLogLocation("/Users/hlu2/Desktop/newFolderForLog");

// Iterate through all Accounts,even if it takes multiple pages
$i = 1;
while (1) {
    $allAccounts = $dataService->FindAll('Account',$i,500);
    $error = $dataService->getLastError();
    if ($error) {
        echo "The Status code is: " . $error->getHttpStatusCode() . "\n";
        echo "The Helper message is: " . $error->getoAuthHelperError() . "\n";
        echo "The Response message is: " . $error->getResponseBody() . "\n";
        exit();
    }

    if (!$allAccounts || (0==count($allAccounts))) {
        break;
    }

    foreach ($allAccounts as $oneAccount) {
        echo "Account[".($i++)."]: {$oneAccount->Name}\n";
        echo "\t * Id: [{$oneAccount->Id}]\n";
        echo "\t * AccountType: [{$oneAccount->AccountType}]\n";
        echo "\t * AccountSubType: [{$oneAccount->AccountSubType}]\n";
        echo "\t * Active: [{$oneAccount->Active}]\n";
        echo "\n";
    }
}

/*

Example output:

Account[0]: Travel Meals
     * Id: NG:42315
     * AccountType: Expense
     * AccountSubType:

Account[1]: COGs
     * Id: NG:40450
     * AccountType: Cost of Goods Sold
     * AccountSubType:

...

*/

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)