2015-04-07 2 views
0

Добрый день. Я пытаюсь создать страницу проверки подлинности в своей посуде как требование Google, используя PHP, и я застрял в течение нескольких дней. Я следовал инструкциям here, но не мог заставить его работать.Аутентификация пользователя Google Glass в PHP

Это мой код:

<?php 
    require_once('dbconnect.php'); 
    include_once 'google-api-php-client/src/Google_Client.php'; 
    include_once 'google-api-php-client/src/contrib/Google_MirrorService.php'; 
    include_once 'google-api-php-client/src/contrib/Google_Oauth2Service.php'; 

    function get_service_client() 
    { 
     global $service_client_id, $service_email, $app_name, $key_file_location, $browser_api_key; 
     $client = new Google_Client(); 

     $client->setApplicationName("Google Glass"); // Set your application name 
     $client->setClientId("CLIENT_ID"); 
     $client->setDeveloperKey("DEVELOPER_KEY"); 

     $key = file_get_contents("KEY_FILE_PATH"); 
     $cred = new Google_Auth_AssertionCredentials(
        $service_email, 
        array('https://www.googleapis.com/auth/glass.thirdpartyauth'), 
        $key 
       ); 
     $client->setAssertionCredentials($cred); 
     return $client; 
    } 

    function insert_account($service,$userToken, $email) 
    { 
     $accountType ='info.google.glass'; 
     $userDataArray = array(); 
     $userData1 = new Google_Service_Mirror_UserData(); 

     $userData1->setKey('email'); 
     $userData1->setValue($email); 

     $userDataArray[] = $userData1; 
     $authTokenArray = array(); 
     $authToken1 = new Google_Service_Mirror_AuthToken(); 

     $authToken1->setAuthToken('randomtoken'); 
     $authToken1->setType('randomType'); 
     $authTokenArray[]=$authToken1; 
     $postBody = new Google_Service_Mirror_Account(); 
     $postBody->setUserData($userDataArray); 
     $postBody->setAuthTokens($authTokenArray); 

     try { 
      $account = $service->accounts->insert($userToken, 
       $accountType, 
       $email, 
       $postBody 
      ); 
     } catch (Exception $e) { 
      echo "fail"; 
     } 
    } 

    if (!$conn) { 
     die("Connection failed: " . mysql_error()); 
    } 
    else 
    { 
     if(isset($_POST['submit'])) 
     { 
      $tempuname =isset($_POST['uname'])?mysql_real_escape_string($_POST['uname']) : ""; 
      $temppass = isset($_POST['pass']) ? mysql_real_escape_string($_POST['pass']) : ""; 
      $pass  = sha1($temppass); 

      $uarray  = explode("/", $tempuname); 

      //var_dump($uarray); 
      $dbname  = $uarray[0]; 
      $uname  = mysql_real_escape_string($uarray[1]); 
      $db   = mysql_select_db("genix_".$dbname); 


       if($db && isset($uname)) 
       { 
        $sql = mysql_query("SELECT * FROM users WHERE username = '".$uname."' AND password = '".$pass."'"); 
        if($sql) 
        { 
         while($row = mysql_fetch_array($sql)) 
         { 
           $userToken  = $_SESSION['userToken']; 
           $service_client = get_service_client(); 
           $mirrorService = new Google_Service_Mirror($service_client); 
           insert_account($mirrorService, $userToken, $email); 
           $_SESSION['userToken']=null; 
           echo $row['facility']; 
         } 
        } 
       else { 
?> 
<script> 
    alert("Invalid Login."); 
</script> 
<? 
    } 
} else { 
?> 
<script> 
    alert("Invalid Login."); 
</script> 
<?  
     } 
    } 
    // } 
} 

Я не получил никаких ответов, ни после того, как ошибка представить. Можете ли вы рассказать мне, где я ошибся? Огромное спасибо.

+0

Какие шаги вы предприняли, чтобы отладить это? Я предлагаю вам проверить, в какой строке/методе ваш код начинает работать не так, как предполагалось. – Koh

+0

После отладки я узнал, что я не получаю никакого «userToken», и это вызывает проблему. Любая помощь? – rapidoodle

ответ

1

Я вижу, что вы пытаетесь вставить учетную запись. Если вы этого еще не сделали, вам нужно будет пройти процесс обзора, чтобы использовать эту функцию. Как уже упоминалось в документах, вам нужно будет загрузить ваш apk в MyGlass для тестирования/использования API.

+0

Вы правы. Спасибо. – rapidoodle