Hali!
Adott egy Google Workspace, ahol az lenne a cél, hogy automatizáltan tudjunk felvenni embereket illetve törölni őket egy csoportból (nem Google Groups, sima terjesztési).
Követtem a leírást,
https://developers.google.com/admin-sdk/directory/v1/guides/manage-grou…
csináltam projektet a Cloud-on, engedélyeztem az admin SDK API-t, ám utána nem jutok tovább. Hogyan kéne cURL kompatibilisen megoldani a problémát, hogy tesztelés után PHP-ba lehessen rakni?
Vagy teljesen rossz az irány amerre indultam? Ezen az OAuth bohóckodáson nem tudok túlvergődni. A Google
https://github.com/google/oauth2l
megoldása szintén nem sokat ír, mert
private key should be a PEM or plain PKCS1 or PKCS8; parse error: asn1: syntax error: sequence truncated
hibát dobál, pedig a cloud-ból leszedett secret van neki beadva. Az már csak hab a tortán, hogy sírt egy type-ért, azt meg kézzel kellett beírni a secret.json-ba egy GitHub issue alapján...
Ha valaki tud megoldást előre is köszönöm.
Hozzászólások
Ha úgyis php lesz a vége használd a saját wrapperüket:
Ha ezzel megvagy utána még mindig kibányászhatod belőle a konkrét közlekedő kéréseket..
https://developers.google.com/admin-sdk/directory/v1/quickstart/php
https://github.com/googleworkspace/php-samples/blob/master/admin-sdk/di…
Köszi! Ami itt még nem világos, hogy a példában autentikálni kell böngészővel. Ez egyszer nyilván nem probléma, viszont hosszútávon felhasználói interakció nélkül szeretnénk használni, ugyanis ha a felhasználó megerősíti a mail címét amit megad nálunk, akkor auto szeretnénk feliratkoztatni, és ha tőle kérünk is Google belépést, az nem admin account lesz. Erre találtam a service account-ot, de az se tűnik 100%-os megoldásnak.
TheAdam
A példa authorization code grant oauth flow-t használ, amit akarsz arra a service account jó irány. ha az emberek alapból workspace-ed alá tartoznak már akkor pedig:
https://developers.google.com/admin-sdk/directory/v1/guides/delegation#…
Köszi! Próbálkoztam ma, de sajnos elakadtam. A cloud-on tehát be van kapcsolva a workspace admin SDK, illetve service account-ot is csináltam, amit felvettem a projekthez mint owner, h legyen minden joga. Python-nal próbáltam még meg, de akár azzal nézem, akár oauth2l-lel, sikerül ugyan belépjen a service account-ba, de a csoporttagokat már nem tudja lekérni. A doménre természetesen felvettem a service account ID-jét és engedélyeztem neki a megfelelő scope-okat, még sem megy. Gúgliztam, de csak olyanokat találtam, h ellenőrizzem, h a doménre rendesen delegálva van-e, de delegálva van, eztán jött, h kínomban felvettem külön a project-hez is a service account-ot. Sajna tippem sincs, hogy merre tudnék továbbhaladni, folyamatod dobálja a 403-akat. Van még esetleg valami ötleted?
TheAdam
> nem tudja lekérni
Ez a hibaüzenet? Vagy van valami konkrétabb?
Tipp: először a saját nevedben próbáld meghívni az API-t, hogy kiderüljön, maga a kérés működik-e. A developers.google.com-on az API referenciáknál szokott lenni olyan kis ablak, ahol rögtön kipróbálhatod böngészőből is.
Ez minden amit kiír. Teszteltem a tesztelős ablakban, az volt nekem is az első tippem, de off sajna.
python qs.py
{
"error": {
"code": 403,
"message": "Not Authorized to access this resource/api",
"errors": [
{
"message": "Not Authorized to access this resource/api",
"domain": "global",
"reason": "forbidden"
}
]
}
}
TheAdam
Nehéz szülés volt, de végül megoldódott. Sajnos sok és káoszos leírása van a Google-nak, de találtam végül működőt, így az eredeti problémát sikerült megoldani, miszerint listáznám egy csoport tagjait workspace-ben, felvennék és törölnék közülük. Mindezt service account-tal, Python-ból és PHP-ból.
Köszönöm mindenkinek a segítséget!
TheAdam
Akkor viszont linkeld be légy szíves az utókornak =)
Jogos, ez lemaradt.
Nos Python-hoz ezt használtam
https://googleapis.github.io/google-api-python-client/
PHP-ban pedig ez segített rettentően sokat
https://github.com/googleapis/google-api-php-client-services/tree/main/…
Ahogy az látható az első elég jól van dokumentálva, viszont a második kevésbé. Itt az autentikációt meg lehet oldani (legalább is az én esetemben sikerült) a projekt kezdőoldalán lévő leírással
https://github.com/googleapis/google-api-php-client/
utána pedig a fenntebbi linken lévő - jól öndokumentált - kódokból már el lehet indulni. Python auth-ra meg szerencsére szép számmal vannak példák (legalább is több mint PHP-ra), Stackoverflow sokat segített.
TheAdam
Köszi így kerek: ha valaki rátalál a kérdésedre meglesz a megoldás is.