0

Google+ APIまたはGoogle+ドメインAPIを使用しているユーザーから組織を取得しようとしています。私は公式ドキュメントの手順を以下だと私が使用しているロジックは、このいずれかになります。Google Plus APIによるユーザー組織の取得

<?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)); 

    } 
} 

?> 

これは完全に私がGoogle+のドメインGoogle+での移行の前に持っていたG-Suiteのアカウントのために働きます。新しいG Suiteアカウントでこの同じスクリプトを使用すると、そのスクリプトは機能しません。私は$service = new Google_Service_Plus($client);で試したところ、結果は同じです。なぜ新しいG Suiteアカウントではうまくいかないのでしょうか?他の誰かが同じ問題を抱えていますか?

答えて

0

私は自分の問題の根本的な原因を見つけました。 User ResourcePeople Resourceは2つの異なるリソースです。どちらも「組織」属性を持っていますが、ユーザーリソースの情報はGoogle Plusのプロファイルには表示されず、ユーザーリソースの「組織」属性を設定するために、ユーザーは手動でGoogle Plusの "about me"ページ。現時点では、人的資源の情報をプログラムで更新する方法はないように思われますが、ユーザーは手動で行う必要があります。

関連する問題