我们如何调用fetchVerificationOptions在谷歌商业验证API与谷歌API PHP SDK?<



我目前正在与各种谷歌api工作。我已经批准了对Google Business API的访问,并成功地使用PHP SDK对其端点进行了几次调用;甚至调用业务验证API中的一些端点。然而,当我请求fetchVerificationOptions的一个定义的位置,我得到一个400错误。

GoogleServiceException
{
"error": {
"code": 400,
"message": "Request contains an invalid argument.",
"errors": [
{
"message": "Request contains an invalid argument.",
"domain": "global",
"reason": "badRequest"
}
],
"status": "INVALID_ARGUMENT",
"details": [
{
"@type": "type.googleapis.com/google.rpc.BadRequest"
}
]
}
}

我已经验证了传入的位置是正确的,格式为"locations/"我在其他许多成功的电话中都使用了这个键。

我已经多次阅读了我能找到的关于这个主题的所有文档。这个错误使我认为我发送的数据是错误的,但是文档非常清楚所期望的-语言代码和可选的上下文。在我当前的示例中,位置是一个CUSTOMER_LOCATION_ONLY类型的业务,并且需要在此请求中通过上下文提供PostalAddress对象。SDK为拼图的每个部分提供了对象,使这看起来更加容易。

下面是我的相关PHP代码:

$options = new FetchVerificationOptionsRequest;
$options->languageCode = 'en-US';
$context = new ServiceBusinessContext;
$context->setAddress($postalAddress);
$options->setContext($context);
$verificationOptions = GoogleBusinessProfileApi::getVerificationService()->locations->fetchVerificationOptions($locationName, $options);

我已经验证了上面代码中的$postalAddressGoogleServiceMyBusinessVerificationsPostalAddress的一个实例,它持有有效的地址详细信息。

我已经验证了上面代码中的$locationName的值是正确的;我的位置ID,格式为"locations/"

上面代码中的GoogleBusinessProfileApi::getVerificationService()返回GoogleServiceMyBusinessVerifications的实例,其中包含我的Google客户端和所有认证内容。我在所有的互动中都使用这种方法,而且效果非常正常。另外,这个错误并不表示这个部件有问题。

同样值得注意的是,在我的Google API Dev Console上,我可以看到这些请求进入并以400响应结束。不过,这些指标似乎也就到此为止了。我找不到更深入、更详细的请求信息。

我在寻找任何东西-方向,想法,想法。有人以前处理过这个问题吗?我错过了什么明显的东西吗?这是我的代码或API本身的问题?有谁知道我如何在Google控制台上更深入地挖掘这些错误吗?

谢谢!

解决方案:

将PostalAddress sublocality设置为null

细节:

在一位同事的帮助下,我们弄清楚发生了什么。我更改了代码以调用旧的、已弃用的API版本。这将返回一个更有用的错误消息,说明美国在其地址中不使用子位置。我在我的PostalAddress对象上设置它,所以我将它更改为始终为null,并且请求在新旧API上都有效。

在这个问题上有很多令人沮丧的地方。

  1. 错误消息。来自"新"one_answers"改进"的回应;API应该告诉我尽可能多,如果不是比旧版本更多。
  2. 文档。对于这个特殊的请求,我找不到任何关于美国次地区的说明。
  3. 帮助。在写这篇文章的时候,在谷歌上搜索关于这个话题的任何东西基本上都没有返回任何东西。
  4. Sublocalities。我的系统是这样设置的,我们实际上使用Google的位置查找来获得一个有效的PostalAddress,以确保我们发送给他们的数据是有效的。在这种情况下,我们使用的地址是从谷歌返回给我们的……有一个次局部性。这个小地方使用县名;这是我们在美国使用的。所以更没有理由认为这是问题所在。虽然我不同意错误信息的准确性,但我真的需要它来了解问题所在。

虽然现在这在网络上似乎不是一个大问题,但我确实希望这可以帮助其他人避免浪费时间。

~欢呼~

相关内容

  • 没有找到相关文章

最新更新