Google Service Account를 사용하여 사용자 목록 가져오기 - [PHP]

5190 단어 PHP라라벨googleapi

소개



Google 서비스 계정을 사용하여 Google Apps 사용 사용자 목록을 가져와야 합니다.

환경


  • PHP

  • google이 php 용으로 내는 API 클라이언트 사용 -이 ver가 2.0이 되었기 때문에 2.0 사용
    htps : // 기주 b. 코 m / goo g / goo g-p-pp-c-en t

    이전 준비 1



    Google Developers Console에서 서비스 계정 만들기
    htps : // 이런. 로 ゔぇぺぺrs. 오, ぇ. 이 m
  • 자격 증명 > 자격 증명 만들기에서 서비스 계정 키 선택
  • 키 생성시 서비스 계정 이름을 서비스 이름으로 입력, 역할 선택, 키 유형 JSON을 선택하여 생성
  • 만든 "API Project-xxxxxxxxxxxx.jso"를 "private_key.json으로 이름 바꾸기"
  • 서비스 계정 키의 서비스 계정 관리 선택
  • 방금 만든 서비스 계정을 선택하고 편집을 선택합니다.
  • Google Apps 도메인 전체 위임을 사용하도록 설정하여 저장
  • 클라이언트 ID 표시 선택
  • 표시된 클라이언트 ID 메모

  • 사전 준비 2



    Google Apps의 Admin console에서 서비스 계정에 권한을 부여합니다.
    h tp // 아 dmin. 오, ぇ. 코m/
  • 보안 선택
  • 자세히 보기 > 고급 > API 클라이언트 액세스 관리를 선택
  • 이전 준비 1에서 메모해 둔 클라이언트 ID를 클라이언트명에 기재, API의 범위에 필요한 스코프를 콤마 단락으로 기재해 승인. 이번에는 우선 다음을 추가 자세한 내용은 → htps : //에서 ゔぇぺぺrs. 오, ぇ. 코 m / 아 dmin - sdk / 아레 c와 ry / v1 / 구이 s / 아테 조린 g
  • htps //w w. ㅇㅜㅜㅜㅜ 이 m/아우 th/아 d민.ぢれ c와 ry. 우세 r
  • htps //w w. ㅇㅜㅜㅜㅜ 이 m/아우 th/아 d민. 아 c와 ry. 우세 r. 레아동 ly



  • 4. 보안으로 돌아가서 API 참조에 대한 API 액세스 사용을 선택하고 저장

    여기까지 사용 준비 완료!

    Composer 사용


    composer init--- 생략---composer require google/apiclientprivate_key를 만든 디렉토리로 이동

    사용자 취득



    google.php
    <?php
    require_once 'vendor/autoload.php';
    
    // 証明書情報のセット
    putenv('GOOGLE_APPLICATION_CREDENTIALS=private_key.json');
    
    $client = new Google_Client();
    // サービス名の設定:多分なんでもいい
    $client->setApplicationName("hogehoge-service");
    // デフォルト証明書使用(GOOGLE_APPLICATION_CREDENTIALS)セットしたい場合はsetAuthConfigで証明書パスを指定
    $client->useApplicationDefaultCredentials();
    // 使用するスコープを指定
    $client->setScopes([Google_Service_Directory::ADMIN_DIRECTORY_USER_READONLY]);
    // 権限を持ったユーザーのメールアドレス指定
    $client->setSubject('[email protected]');
    
    // サービスAPI名指定
    $service = new Google_Service_Directory($client);
    
    // 取得する際のオプション指定
    $options = ['domain' => 'xxxxxxxx.co.jp','maxResults' => 500,'orderBy' => 'email'];
    
    $results = $service->users->listUsers($options);
    var_dump($results);
    
    

    요약



    사전 설정이 다소 어렵기 때문에 번거로운 냄새가 코드 자체는 상당히 심플하게 되어 있어, 사용하기 쉬운 인상 스코프의 지정이나 권한 주위에 대해서는 필요 최저한으로 해 두지 않으면 모든 유저에 대해서 뭐든지 할 수 있어 주의가 필요

    참고



    htps : // 기주 b. 코 m / goo g / goo g ぇ - ap-php-c-en t
    htps : //에서 ゔぇぺぺrs. 오, ぇ. 코 m / 아피 - c 엔 t - b et ry / php /
    htps : //에서 ゔぇぺぺrs. 오, ぇ. 코 m / 아 dmin - sdk / 아레 c와 ry / v1 / 구이 s / 아테 조린 g

    좋은 웹페이지 즐겨찾기