1
votes

I'm trying to use the newest Google PHP API Lib to update users and i can't find any examples on how to use it to update.

The closest example I can find is this Cannot update user information using Google PHP API Client library but it doesn't have enough info to add on to.

Below is what I have and it's copied off of another job that pulls from the users list. But that is scoped to 'https://www.googleapis.com/auth/admin.directory.user.readonly https://www.googleapis.com/auth/admin.directory.group.readonly https://www.googleapis.com/auth/admin.directory.orgunit.readonly'

and doesn't update anything.

I've searched and searched and cannot seem to find an example of PHP updating a user.

session_start();
require 'vendor/autoload.php';
$SCOPE = 'https://www.googleapis.com/auth/admin.directory.user';

$SERVICE_ACCOUNT_EMAIL = '[email protected]';
$SERVICE_ACCOUNT_PKCS12_FILE_PATH = 'blahblah.p12';

$client = new Google_Client();
$client->setApplicationName('BLahBlah.apps.googleusercontent.com');
$adminService = new Google_Service_Directory($client);
$key = file_get_contents($SERVICE_ACCOUNT_PKCS12_FILE_PATH);


$cred = new Google_Auth_AssertionCredentials($SERVICE_ACCOUNT_EMAIL, array($SCOPE), $key);
$cred->sub = "[email protected]";

$client->setAssertionCredentials($cred);

$email = "[email protected]";
$requestUrl = "https://www.googleapis.com/admin/directory/v1/users/" . urlencode($email) ;
$requestMethod = 'PUT';
$data = array("title" => "Cool Guy");
$requestHeader = array('Content-Type' => 'application/json', 'Content-Length' => 'CONTENT_LENGTH');

$request = new Google_Http_Request($requestUrl, $requestMethod,$requestHeader,$data);

$httpRequest = $client->getAuth()->authenticatedRequest($request);
1

1 Answers

0
votes

The code was fine, I had to go into our google apps domain security settings and grant user edit access. and adjust the body data to match the json... Here is an example.

$data = array("organizations" => array(array("name"=>"My Company","title"=>"Director, Information Technology","primary"=>true,"customType"=>"Other","department"=>"Information Technology")),"name"=>array("familyName"=> "Admin"));