1

當谷歌認證的谷歌Analytics(分析)我想獲得用戶的電子郵件ID,以及是否有可能做到這一點,所以我怎麼能解決這個谷歌Analytics(分析)PHP API - 獲取用戶電子郵件

下面是我的代碼用於驗證並保存access_token

 $scope =implode(' ', array(Google_Service_Calendar::CALENDAR_READONLY,Google_Service_Analytics::ANALYTICS_READONLY)); 

    $this->client->setRedirectUri('http://' . $_SERVER['HTTP_HOST'] . '/google/callback'); 
    $this->client->addScope($scope); 
    $this->client->setAccessType("offline"); 

    // Handle authorization flow from the server. 
    if (!isset($_GET['code'])) { 
     $auth_url = $this->client->createAuthUrl(); 
     header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL)); 

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

     if (isset($_SESSION['access_token']['refresh_token'])) { 

      $this->googledbsave_model->create_google_cred($_SESSION['id'], $_SESSION['access_token']); 


      if($_SESSION['id']==19){ 

       $access_token = $_SESSION['access_token']; 

       $update_token = array(

        'access_token' => $access_token['access_token'], 
        'token_type' => $access_token['token_type'], 
        'expires_in' => $access_token['expires_in'], 
        'created' => $access_token['created'] 
       ); 

       $get_prof = $this->googledbsave_model->update_subadmin($_SESSION['id'], $update_token); 

      } 


     } else { 
      $this->googledbsave_model->create_google_cred($_SESSION['id'], $_SESSION['access_token']); 
      $this->revokeToken(); 

      $_SESSION['has_error'] = 1; 
      $_SESSION['error_message'] = "Cannot Syncronise Account Properly... Please Authenticate Again"; 
     } 


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

到目前爲止你做了什麼?沒有看到我們無法幫助你。請分享一些你寫的代碼 –

+0

我已經更新了這個問題 – Fawaz

回答

1

您使用Google Analytics API進行身份驗證最簡單的方法就是通過管理協議。做一個account summaries list

$accounts = $analytics->management_accountSummaries->listManagementAccountSummaries(); 

技術上使用這種方法列出當前認證的用戶具有訪問權限的帳戶。不過它有一點小小的好處,它還會在用戶名字段中返回他們的電子郵件地址。

{ 
    "kind":"analytics#accountSummaries", 
    "username":"[email protected]", 
    "totalResults":14, 
    "startIndex":1, 
    "itemsPerPage":1000, 
    "items":[ 
     {  
     .... 
     }] 
} 

您也可以使用您也在使用的Google日曆API。通過在主日曆

$calendar = $service->calendars->get('primary'); 

calendar get主日曆是所有用戶的主日曆。

{ 
"kind": "calendar#calendar", 
"etag": "\"E756z8zuickcYzaOnj8krCN4-Pk\"", 
"id": "[email protected]", 
"summary": "[email protected]", 
"timeZone": "Europe/Copenhagen" 
} 

很多Google API都有這個隱藏功能,您只需要弄清楚需要調用哪種方法才能獲取信息。

相關問題