Saya bercakap dengan sokongan pelanggan Google Workspace tetapi mereka tidak dapat mencari dokumentasi yang betul tentang isu ini. Mereka membimbing saya ke sini.
Sangat mudah, saya cuba mendayakan API Awan Google untuk membuat acara dalam kalendar pengguna (dan ingin menambahkan URL Google Meet padanya) seperti dalam dokumentasi berikut: https://developers.google.com/calendar /api/guides/create-events .
Saya mengikuti contoh kod PHP permulaan pantas, yang mula-mula mengarahkan anda untuk memasang SDK melalui Komposer dan membenarkan API Awan Google dalam PHP. Pautan ada di: https://developers.google.com/calendar/api/quickstart/php.
Skrip yang disediakan pada halaman ini (langkah 2) pada mulanya gagal (semasa langkah 3) dengan ralat berikut:
PHP Fatal error: Uncaught InvalidArgumentException: file "credentials.json" does not exist in /path/to/vendor/Google/google/apiclient/src/Client.php:984
Jejak tindanan: #0 /path/to/app_root/quickstart.php(17): GoogleClient->setAuthConfig('credentials.jso...') #1 /path/to/app_root/quickstart.php(63): getClient() #2 {Utama} Melempar ke dalam /path/to/vendor/Google/google/apiclient/src/Client.php talian 984
Saya telah mencipta akaun perkhidmatan mengikut arahan di sini:
Walaupun langkah untuk membuat akaun perkhidmatan dan menjana kunci JSON tidak disertakan dalam arahan, saya menemui penyelesaian itu dalam talian dan ia telah disahkan oleh ejen sokongan Google Workspace. Saya memuat turun dan menamakan semula fail dan meletakkannya dalam direktori akar skrip (ini telah disahkan oleh ejen sokongan Google Workspace, walaupun laluan tidak dinyatakan dalam dokumentasi yang tidak lengkap sama ada). Saya menjalankan skrip sekali lagi dan mendapat ralat ini:
PHP Fatal error: Uncaught InvalidArgumentException: missing the required redirect URI in /path/to/vendor/Google/google/auth/src/OAuth2.php:694 Stack trace: #0 /path/to/vendor/Google/google/apiclient/src/Client.php(406): Google\Auth\OAuth2->buildFullAuthorizationUri(Array) #1 /path/to/app_root/quickstart.php(38): Google\Client->createAuthUrl() #2 /path/to/app_root/quickstart.php(63): getClient() #3 {main} thrown in /path/to/vendor/Google/google/auth/src/OAuth2.php on line 694
Saya cuba mencipta URI ubah hala OAuth dan menjana semula kunci JSON, tetapi ralat yang sama berlaku. Berikut ialah fail JSON pengesahan yang saya muat turun dari bahagian akaun perkhidmatan KEYS, dengan sebarang maklumat khusus akaun diedit:
{ "type": "service_account", "project_id": "massive-clone-{REDACTED}", "private_key_id": "{REDACTED}", "private_key": "-----BEGIN PRIVATE KEY-----{REDACTED}\n-----END PRIVATE KEY-----\n", "client_email": "calendar-api@massive-clone-{REDACTED}.iam.gserviceaccount.com", "client_id": "{REDACTED}", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/calendar-api%40massive-clone-{REDACTED}.iam.gserviceaccount.com" }
Walaupun panduan mula pantas nampaknya menangani isu ini dalam bahagian penyelesaian masalah, nasihat itu nampaknya tidak terpakai kerana tiada "butang" dalam langkah 1. Dari bahagian penyelesaian masalah:
Uncaught InvalidArgumentException: URI ubah hala yang diperlukan tiada
Apabila menggunakan fail credentials.json yang mengandungi Jenis ID pelanggan yang salah. Kod ini memerlukan ID klien OAuth Masukkan "Lain-lain" dan ia akan dibuat untuk anda apabila anda menggunakan butang Langkah 1. Jika mencipta ID pelanggan anda sendiri, pastikan anda memilih Jenis yang betul.
Bolehkah sesiapa membantu saya memikirkan cara mendapatkan credentials.json
fail yang betul? Saya tidak pasti bagaimana proses ini sepatutnya berfungsi, tetapi ejen sokongan Google Workspace berkata mereka tidak menemui sebarang dokumentasi dan mengarahkan saya ke sini. Jika soalan saya perlu dinyatakan secara berbeza, sila beritahu saya.
Kod anda cuba menggunakan akaun perkhidmatan. Contoh ini menggunakan rahsia pelanggan OAuth.
Sediakan OAuth 2.0