0

Ich versuche, die Organisationen von einem Nutzer mit Google+ API oder Google+ Domains API zu beziehen. Ich verfolge die Schritte auf der offiziellen Dokumentation und die Logik ich benutze ist diese:Nutzerorganisationen mit Google Plus-API erhalten

<?php session_start(); 

require_once 'vendor/autoload.php'; //INCLUDE PHP CLIENT LIBRARY 

$scopes = array(
    "https://www.googleapis.com/auth/plus.profiles.read",   
    "https://www.googleapis.com/auth/plus.me" 
); 

// Create client object and set its configuraitons 
$client = new Google_Client(); 
$client->setRedirectUri('http://' . $_SERVER['HTTP_HOST'] . '/'); 
$client->setAuthConfig("creds.json"); 
$client->addScope($scopes); 

if(isset($_SESSION["access_token"])) { 

    $client->setAccessToken($_SESSION["access_token"]); 
    $service = new Google_Service_PlusDomains($client); 

    $me = $service->people->get('me'); 
    var_dump($me); 

    echo "<br><br>*********************************************<br><br>"; 

    $orgs = $me->getOrganizations(); // (THIS IS EMPTY!!!) ???? 
    var_dump($orgs); 

} else { 

    if(!isset($_GET["code"])){ 

     $authUrl = $client->createAuthUrl(); 
     header('Location: ' . filter_var($authUrl, FILTER_SANITIZE_URL)); 

    } else { 

     $client->authenticate($_GET['code']); 
     $_SESSION['access_token'] = $client->getAccessToken(); 

     $redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/'; 
     header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL)); 

    } 
} 

?> 

Die perfekt für G-Suite-Account funktioniert ich vor dem Übergang von Google+ zu Google+ Domains hatte. Wenn ich dasselbe Skript in einem neueren G Suite-Konto verwende, funktioniert es nicht. Ich habe es mit $service = new Google_Service_Plus($client); versucht und das Ergebnis ist das gleiche. Irgendeine Idee, warum es mit neuen G Suite-Konten nicht funktioniert? Hat jemand das gleiche Problem?

Antwort

0

Ok. Ich habe die Ursache meines Problems gefunden. Es passiert, dass die User Resource und die People Resource zwei verschiedene Ressourcen sind. Beide haben das Attribut "Organisation", aber die Informationen der Benutzerressource werden nicht in Ihrem Google Plus-Profil angezeigt. Um das Attribut "Organisation" der Personenressource zu füllen, muss der Benutzer die Informationen manuell aktualisieren "Über mich" Seite in Google Plus. Im Moment scheint es keine Möglichkeit zu geben, die Informationen der Personen-Ressource programmatisch zu aktualisieren, aber Benutzer müssen dies manuell tun.

Verwandte Themen