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

我目前正在使用各種 Google API。我已經批准了對 Google Business API 的訪問,並成功使用 PHP SDK 對其端點進行了多次調用;甚至調用業務驗證 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"
      }
    ]
  }
}

我已驗證傳入的位置正確,格式為「locations/<LOCATION_ID>」。我在許多其他成功的呼叫中使用了相同的密鑰。

我已經多次閱讀了我能找到的關於這個主題的所有文件。該錯誤讓我認為我發送的數據是錯誤的,但文件對於預期的內容非常清楚 - 語言代碼和可選的上下文。在我目前的情況下,該位置是 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);

我已驗證上述程式碼中的 $postalAddressGoogle\Service\MyBusinessVerifications\PostalAddress 的實例,其中包含有效的位址詳細資訊。

我已驗證上述程式碼中的 $locationName 具有正確的值;我的位置 ID,格式為「locations/<LOCATION_ID>」。

上面程式碼中的 GoogleBusinessProfileApi::getVerificationService() 傳回一個 Google\Service\MyBusinessVerifications 實例,其中包含我的 Google 用戶端和所有身分驗證內容。我在所有互動中都使用這​​種方法,而且它們工作得非常正常。另外,該錯誤並不表示該部件有問題。

也值得注意的是,在我的 Google API 開發控制台上,我可以看到這些請求傳入並以 400 回應結束。不過,這只是指標看起來的狀況。我找不到有關請求的更深入、更詳細的資訊。

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

謝謝!

P粉976488015
P粉976488015

全部回覆(1)
P粉564192131

解決方案:

將 PostalAddress 子區域設定為 null。

詳細資訊:

在同事的幫助下,我們弄清楚了發生了什麼事。我更改了程式碼以呼叫舊的、已棄用的 API 版本。這回傳了一條更有用的錯誤訊息,指出美國在其地址中不使用子區域。我在 PostalAddress 物件上進行了設置,因此我將其更改為始終為 null,並且該請求在舊 API 和新 API 上均有效。

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

  1. 錯誤訊息。 「新的和改進的」API 的回應應該告訴我與舊版本一樣多的信息,甚至更多。
  2. 文件. 我在任何地方都找不到關於此特定請求的美國次區域的任何說明。
  3. 提供協助。 在撰寫本文時,在Google上搜尋有關該主題的任何內容基本上沒有返回任何內容。
  4. 子區域。 我的系統設定方式實際上是使用 Google 的地點來尋找有效的 PostalAddress,以確保我們發送給他們的資料有效。在這種情況下,我們使用的地址是從 Google 返回給我們的...帶有子區域。次地方擁有縣名;我們在美國使用的東西。因此,更沒有理由認為這會是問題所在。雖然我不同意錯誤訊息的準確性,但我確實需要它來了解問題所在。

雖然現在這在網路上似乎不是一個大問題,但我確實希望有一天這可以幫助其他人避免浪費時間。

~乾杯~

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板