Quickbooks 错误:请在运行此示例(quick book PHP SDK)之前将领域添加到App.Config

Quickbooks 错误:请在运行此示例(quick book PHP SDK)之前将领域添加到App.Config,quickbooks,Quickbooks,我正在为QBO使用PHPV3SDK。我在_sample文件夹中编辑了customer_query.php并进行了更改 RealmID (**Company id given**), AccessToken,AccessTokenSecret,ConsumerKey,ConsumerSecret 这些值是我在测试连接到应用程序时得到的。但是我得到了一个错误,请在运行此示例之前将realm添加到App.Config。尽管我已经给了公司id,但我还是得到了这个错误 这是我的代码: require_o

我正在为QBO使用PHPV3SDK。我在_sample文件夹中编辑了customer_query.php并进行了更改

RealmID (**Company id given**), AccessToken,AccessTokenSecret,ConsumerKey,ConsumerSecret
这些值是我在测试连接到应用程序时得到的。但是我得到了一个错误,请在运行此示例之前将realm添加到App.Config。尽管我已经给了公司id,但我还是得到了这个错误

这是我的代码:

require_once(PATH_SDK_ROOT . 'Core/ServiceContext.php');
require_once(PATH_SDK_ROOT . 'DataService/DataService.php');
require_once(PATH_SDK_ROOT . 'PlatformService/PlatformService.php');
require_once(PATH_SDK_ROOT . 'Utility/Configuration/ConfigurationManager.php');

//Specify QBO or QBD
$serviceType = IntuitServicesType::QBO;
// Get App Config
$realmId = ConfigurationManager::AppSettings('55555555'); // **Company id given**
if (!$realmId)
    exit("**Please add realm to App.Config before running this sample**.\n"); // ***My code stop here***

// Prep Service Context
$requestValidator = new OAuthRequestValidator(ConfigurationManager::AppSettings('AccessToken'),
                                              ConfigurationManager::AppSettings('AccessTokenSecret'),
ConfigurationManager::AppSettings('ConsumerKey'),
ConfigurationManager::AppSettings('ConsumerSecret')); // **Actual key given**

$serviceContext = new ServiceContext($realmId, $serviceType, $requestValidator);
if (!$serviceContext)
    exit("Problem while initializing ServiceContext.\n");

// Prep Data Services
$dataService = new DataService($serviceContext);
if (!$dataService)
    exit("Problem while initializing DataService.\n");

// Run a query
$entities = $dataService->Query("SELECT * FROM Customer");

// Echo some formatted output
$i = 0;
foreach($entities as $oneCustomer)
{
    echo "Customer[$i] GivenName: {$oneCustomer->GivenName} (Created at {$oneCustomer->MetaData->CreateTime})\n";
    $i++;
}

请参考以下链接

您可以在以下代码段中硬编码值,而不是从配置文件中读取值

$accessToken = '';
$accessTokenSecret = '';
$consumerKey = '';
$consumerSecret = '';

$requestValidator = new OAuthRequestValidator(
$accessToken, $accessTokenSecret, $consumerKey, $consumerSecret);

$realmId = '';

$serviceType= IntuitServicesType::QBO;

$serviceContext = new ServiceContext($realmId, $serviceType, $requestValidator);

$dataService = new DataService($serviceContext);

它应该可以工作。

我想,App.config中的值存储在键值对中。您确定要重新登录,密钥是“5555”[Ref-ConfigurationManager::AppSettings“5555]”吗?您可以尝试在relamId变量中硬编码relamId。ThanksManas,我们可以在App.config中设置relamid和其他令牌密钥。php sdk v3中的app.config在哪里?每次连接到Quickbook时,AccessToken和AccessTokenSecret都在更改。但是在PHPV3SDK为QBO提供的_示例代码中,我们需要硬编码AccessToken和AccessTokenSecret密钥。每次这个值改变时,在代码中我们需要改变这些键,否则代码将不会产生任何结果。是否有永久解决方案?AccessToken&AccessTokenSecret将在6个月后过期。在那之前是不能改变的。在独立代码中,您也不需要更改任何内容。您可以分享显示任何错误的响应XML吗。如以下文档所述,请配置devkit记录器以获取原始请求和响应XML。谢谢,谢谢你的快速回复。现在我的代码运行良好。我是quickbook的初学者&我的疑问是能否获得这些密钥访问令牌、访问令牌密钥。在我的在线应用程序中,我单击了Test connect to app OAuth。连接到我的测试应用程序后,我单击了链接应用程序菜单API测试。在这个页面中,我得到了所有的密钥消费者密钥、消费者密钥、访问令牌、访问令牌密钥。您的意思是,用户不想再次单击并连接。如果是这样,就不需要更改这些keysAccess令牌,也不需要在PHP SDK示例中的客户fecthing文件中更改Access令牌Secret。您可以查看这个描述应用程序用户流的链接-最终用户通过三段OAuth流,然后您的应用程序存储这些OAuth令牌。下次当最终用户登录时,您将从DB检索OAuth令牌,并在其云数据上调用QB端点。6个月后,这些代币到期。在那个之前,你们可以使用现有的代币。玛纳斯,我如何在我的应用数据库中存储应用代币。我可以在数据库中手动存储这些密钥。在你提供的链接中,你说你可以从我的应用程序连接到quickbook。我们如何在我的数据库中动态存储这些密钥。我们会得到回复吗。请给我一个详细的答复。。。。