2015-01-06 2 views
0

Это мой тестовый код:ГДК Аутентификация с помощью PHP

================================= ========

<?php 

include_once "templates/base.php"; 
session_start(); 

require_once realpath(dirname(__FILE__) . '/../autoload.php'); 

function get_service_client(){ 
$service_client_id="540223414844-tj91ijj3u99c44bhmftb8m20tgon57hc.apps.googleusercontent.com"; 
$service_email="[email protected]account.com"; 
$app_name="Eyenotes"; 
$key_file_location='C:/Users/Yuan/Desktop/eyenotes-81e92b7df1f1.p12'; 
$browser_api_key="AIzaSyAplINlgfGWGJ8pD1Bxlr8wg7i8ZNVOS1A"; 

$client = new Google_Client(); 
$client->setApplicationName("Eyenotes"); // Set your application name 
$client->setClientId("540223414844-tj91ijj3u99c44bhmftb8m20tgon57hc.apps.googleusercontent.com"); 
$client->setDeveloperKey("AIzaSyAplINlgfGWGJ8pD1Bxlr8wg7i8ZNVOS1A"); 
$key = file_get_contents("C:/Users/Yuan/Desktop/eyenotes-81e92b7df1f1.p12"); 
$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='com.eyenotes'; 
$userDataArray= array(); 
$userData1= new Google_Service_Mirror_UserData(); 
$userData1->setKey('email'); 
$userData1->setValue("[email protected]"); 
$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); 
echo $account; 
} catch (Exception $e) { 

} 
} 
$service_client= get_service_client(); 
$mirrorService = new Google_Service_Mirror($service_client); 
insert_account($mirrorService, "6164da1732ea09b4", "[email protected]"); 
?> 

=================================== =======

Это исключение я получил:

============================ ==============

Fatal error: Uncaught exception 'Google_Service_Exception' with message 'Error calling POST https://www.googleapis.com/mirror/v1/accounts/6164da1732ea09b4/com.eyenotes/ccfsz.public%40gmail.com?key=AIzaSyDxnl16J8Eiwv00k_1yzw_VoRr9wD32qao: (400) Invalid Value' in D:\MySoftware\wamp\www\insert\src\Google\Http\REST.php on line 111 
Google_Service_Exception: Error calling POST https://www.googleapis.com/mirror/v1/accounts/6164da1732ea09b4/com.eyenotes/ccfsz.public%40gmail.com?key=AIzaSyDxnl16J8Eiwv00k_1yzw_VoRr9wD32qao: (400) Invalid Value in D:\MySoftware\wamp\www\insert\src\Google\Http\REST.php on line 111 

========================================= Параметры Объяснение:

Тип учетной записи я предоставляю Google.

Пользовательский токен - это я получил от аутентификационного URL, который я предоставляю Google.

браузер api key создается при создании нового ключа в консоли разработчика.

Пожалуйста, расскажите мне, в чем проблема в моем коде?

Спасибо.

Я поймал исключение, и оно снова не вызывало исключение, но я все еще не могу получить информацию об учетной записи, используя mAccountManager.getAccountByType («com.eyenotes»). И в консоли разработчика Google, это показывает, что я запросил успешно. Другой, я не могу получить свое приложение после переключения «ВКЛ» на Glassware. Теперь я пытаюсь восстановить заводские настройки своего стекла, но через два часа я не получил никакой информации, указывающей на то, что я сбросил успех. (теперь моя заявка не является общедоступной)

ответ

0

Есть много вещей, которые я хочу знать ... Во-первых, путь в ошибке отсутствует в вашем коде. Поэтому не может быть уверен, где именно происходит ошибка.

Могут быть и другие проблемы, связанные с аутентификацией в GDK, просто для того, чтобы дать вам голову ... Вы можете временно сохранить параметр запроса пользователяToken, отправленный с этим запросом (не навсегда хранить его), и затем выполните аутентификацию пользователя по тому, какой бэкэнд вы используете. Оттуда вы, вероятно, запросите правильную область для своей учетной записи Google. Как только это будет сделано, вы можете создать свою службу Зеркала, как обычно в PHP, а затем использовать коллекцию счетов:

// $myClient would contain the typical Google_Client() setup 
// See PHP quickstart for example 
$myMirrorService = new Google_Service_Mirror($myClient); 

// Set your inputs to insert() as needed 
$accounts = $myMirrorService->accounts->insert($userToken, $accountType, $accountName, $postBody); 

А также, вы можете только тест и использовать этот API после ваших земель APK на MyGlass (что случается во время обзор процесса). Я бы также рекомендовал Mirror API PHP Quickstar t как отправную точку, чтобы понять, как работает аутентификация, если вы этого еще не сделали.

+0

Я очень доволен и очень благодарен за ваш ответ. Большое спасибо. Я проверю и попробую еще раз. – alens

+0

Привет, там. Я выбрал исключение, и он снова не вызвал исключение, но я не могу получить информацию об учетной записи, используя mAccountManager.getAccountByType («com.eyenotes»); и в консоли разработчика Google, это показывает, что я запросил успешно. другой, я не могу получить свое приложение после переключения «ON» на Glassware. Теперь я пытаюсь восстановить заводские настройки своего стекла, но через два часа я не получил никакой информации, указывающей на то, что я сбросил успех. (теперь мое приложение не является общедоступным). – alens

Смежные вопросы