cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimanakah kami boleh memanggil fetchVerificationOptions dalam API Pengesahan Perniagaan Google menggunakan Google API PHP SDK?

Saya sedang menggunakan pelbagai API Google. Saya telah meluluskan akses kepada Google Business API dan berjaya membuat berbilang panggilan ke titik akhirnya menggunakan PHP SDK malah memanggil beberapa titik akhir dalam Business Authentication API. Walau bagaimanapun, apabila saya meminta fetchVerificationOptions dengan lokasi yang ditentukan, saya menerima ralat 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"
      }
    ]
  }
}

Saya telah mengesahkan bahawa lokasi yang dihantar adalah betul, dalam format "lokasi/<LOCATION_ID>". Saya telah menggunakan kunci yang sama dalam banyak panggilan lain yang berjaya.

Saya telah membaca beberapa kali semua dokumentasi yang saya dapati mengenai topik ini. Ralat membuatkan saya berfikir bahawa data yang saya hantar adalah salah, tetapi dokumentasinya sangat jelas tentang perkara yang diharapkan - kod bahasa dan konteks pilihan. Dalam kes semasa saya, lokasi ialah jenis perniagaan CUSTOMER_LOCATION_ONLY dan objek PostalAddress perlu disediakan dalam permintaan ini melalui konteks. SDK menjadikannya kelihatan lebih mudah dengan menyediakan objek untuk setiap bahagian teka-teki.

Ini kod PHP saya yang berkaitan:

$options = new FetchVerificationOptionsRequest;
$options->languageCode = 'en-US';

$context = new ServiceBusinessContext;
$context->setAddress($postalAddress);
$options->setContext($context);

$verificationOptions = GoogleBusinessProfileApi::getVerificationService()->locations->fetchVerificationOptions($locationName, $options);

Saya telah mengesahkan bahawa contoh $postalAddressGoogleServiceMyBusinessVerificationsPostalAddress dalam kod di atas mengandungi butiran alamat yang sah.

Saya telah mengesahkan bahawa $locationName dalam kod di atas mempunyai nilai yang betul; ID lokasi saya dalam format "lokasi/<LOCATION_ID>".

Instance GoogleBusinessProfileApi::getVerificationService() 返回一个 GoogleServiceMyBusinessVerifications dalam kod di atas, yang mengandungi klien Google saya dan semua bahan pengesahan. Saya menggunakan kaedah ini untuk semua interaksi saya dan ia berfungsi dengan baik. Juga, ralat ini tidak menunjukkan masalah dengan bahagian tersebut.

Turut diperhatikan ialah pada konsol pembangunan API Google saya, saya dapat melihat permintaan ini masuk dan berakhir dengan 400 respons. Walau bagaimanapun, ini hanya rupa penunjuk. Saya tidak dapat mencari maklumat yang lebih mendalam dan lebih terperinci tentang permintaan itu.

Saya sedang mencari apa sahaja dan segala-galanya - hala tuju, idea, idea. Adakah orang lain pernah menangani perkara ini sebelum ini? Adakah saya kehilangan sesuatu yang jelas? Adakah ini masalah dengan kod saya atau API itu sendiri? Adakah sesiapa tahu bagaimana untuk mengkaji lebih mendalam tentang ralat ini pada Konsol Google?

Terima kasih!

P粉976488015P粉976488015247 hari yang lalu506

membalas semua(1)saya akan balas

  • P粉564192131

    P粉5641921312024-03-30 11:11:43

    Penyelesaian:

    Tetapkan subwilayah PostalAddress kepada null.

    Butiran:

    Dengan bantuan daripada rakan sekerja, kami mengetahui perkara yang sedang berlaku. Saya menukar kod untuk memanggil versi API lama yang tidak digunakan lagi. Ini mengembalikan mesej ralat yang lebih berguna yang menyatakan bahawa Amerika Syarikat tidak menggunakan subzon dalam alamatnya. Saya menetapkannya pada objek PostalAddress jadi saya menukarnya kepada sentiasa batal dan permintaan berfungsi pada API lama dan baharu.

    Terdapat banyak perkara yang mengecewakan tentang isu ini.

    1. Mesej ralat. Maklum balas daripada API "baharu dan dipertingkatkan" sepatutnya memberitahu saya sama seperti versi lama, jika tidak lebih.
    2. Dokumentasi. Saya tidak dapat mencari sebarang huraian di mana-mana tentang subrantau AS untuk permintaan khusus ini.
    3. Bantuan tersedia. Pada masa menulis artikel ini, mencari Google untuk apa-apa sahaja mengenai topik ini pada dasarnya tidak menghasilkan apa-apa.
    4. Sub kawasan. Cara sistem saya disediakan adalah dengan menggunakan carian lokasi Google untuk mendapatkan Alamat Pos yang sah untuk memastikan data yang kami hantar kepada mereka adalah sah. Dalam kes ini, kami menggunakan alamat yang telah dikembalikan kepada kami daripada Google...dengan subzon. Sub-lokal mempunyai nama daerah; sesuatu yang kami gunakan di Amerika Syarikat. Oleh itu, terdapat lebih sedikit sebab untuk menganggap itu masalahnya. Walaupun saya tidak bersetuju dengan ketepatan mesej ralat, saya memerlukannya untuk memahami masalahnya.

    Walaupun ini nampaknya tidak menjadi masalah besar di web sekarang, saya berharap satu hari ini dapat membantu orang lain mengelak daripada membuang masa mereka.

    ~Cheers~

    balas
    0
  • Batalbalas