亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

我們如何使用 Google API PHP SDK 調用 Google Business Verification API 中的 fetchVerificationOptions?
P粉976488015
P粉976488015 2024-03-29 12:50:32
0
1
700

我目前正在使用各種 Google API。我已經(jīng)批準了對 Google Business API 的訪問,并成功使用 PHP SDK 對其端點進行了多次調用;甚至調用業(yè)務驗證 API 中的某些端點。但是,當我請求已定義位置的 fetchVerificationOptions 時,收到 400 錯誤。

Google\Service\Exception
{
  "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"
      }
    ]
  }
}

我已驗證傳入的位置正確,格式為“l(fā)ocations/<LOCATION_ID>”。我在許多其他成功的調用中使用了相同的密鑰。

我已經(jīng)多次閱讀了我能找到的關于這個主題的所有文檔。該錯誤讓我認為我發(fā)送的數(shù)據(jù)是錯誤的,但文檔對于預期的內容非常清楚 - 語言代碼和可選的上下文。在我當前的情況下,該位置是 CUSTOMER_LOCATION_ONLY 業(yè)務類型,并且需要通過上下文在此請求中提供 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);

我已驗證上述代碼中的 $postalAddressGoogle\Service\MyBusinessVerifications\PostalAddress 的實例,其中包含有效的地址詳細信息。

我已驗證上述代碼中的 $locationName 具有正確的值;我的位置 ID,格式為“l(fā)ocations/<LOCATION_ID>”。

上面代碼中的 GoogleBusinessProfileApi::getVerificationService() 返回一個 Google\Service\MyBusinessVerifications 實例,其中包含我的 Google 客戶端和所有身份驗證內容。我在所有交互中都使用這種方法,并且它們工作得非常正常。另外,該錯誤并不表明該部件存在問題。

還值得注意的是,在我的 Google API 開發(fā)控制臺上,我可以看到這些請求傳入并以 400 響應結束。不過,這只是指標看起來的情況。我找不到有關請求的更深入、更詳細的信息。

我正在尋找任何東西——方向、想法、想法。以前還有其他人處理過這個嗎?我錯過了一些明顯的東西嗎?這是我的代碼還是 API 本身的問題?有人知道如何在 Google 控制臺上更深入地查找這些錯誤嗎?

謝謝!

P粉976488015
P粉976488015

全部回復(1)
P粉564192131

解決方案:

將 PostalAddress 子區(qū)域設置為 null。

詳細信息:

在同事的幫助下,我們弄清楚了發(fā)生了什么。我更改了代碼以調用舊的、已棄用的 API 版本。這返回了一條更有用的錯誤消息,指出美國在其地址中不使用子區(qū)域。我在 PostalAddress 對象上進行了設置,因此我將其更改為始終為 null,并且該請求在舊 API 和新 API 上均有效。

這個問題有很多令人沮喪的地方。

  1. 錯誤消息。“新的和改進的”API 的響應應該告訴我與舊版本一樣多的信息,甚至更多。
  2. 文檔。我在任何地方都找不到關于此特定請求的美國次區(qū)域的任何說明。
  3. 提供幫助。在撰寫本文時,在谷歌上搜索有關該主題的任何內容基本上沒有返回任何內容。
  4. 子區(qū)域。我的系統(tǒng)設置方式實際上是使用 Google 的地點查找來獲取有效的 PostalAddress,以確保我們發(fā)送給他們的數(shù)據(jù)有效。在這種情況下,我們使用的地址是從 Google 返回給我們的......帶有子區(qū)域。次地方擁有縣名;我們在美國使用的東西。因此,更沒有理由認為這會是問題所在。雖然我不同意錯誤消息的準確性,但我確實需要它來了解問題所在。

雖然現(xiàn)在這在網(wǎng)絡上似乎不是一個大問題,但我確實希望有一天這可以幫助其他人避免浪費時間。

~干杯~

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板