GDK аутентификация с использованием PHP

0

Это мой тестовый код:

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

<?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="540223414844-tj91ijj3u99c44bhmftb8m20tgon57hc@developer.gserviceaccount.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 генерируется при создании нового ключа в консоли разработчика.

Скажите, пожалуйста, какая проблема в моем коде?

Благодарю.

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

Теги:
google-gdk
google-mirror-api

1 ответ

0
Лучший ответ

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

Могут быть и другие проблемы, связанные с проверкой подлинности в GDK, просто для того, чтобы дать вам голову... Вы можете временно сохранить параметр запроса userToken, отправленный с этим запросом (не навсегда хранить его), а затем аутентифицировать пользователя на каком бэкэнд вы бежите. Оттуда вы, вероятно, запросите правильную область для своей учетной записи 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 (что происходит во время процесса обзора). Я бы также рекомендовал API-интерфейс Mirror PHP Quickstar t в качестве отправной точки, чтобы понять, как работает аутентификация, если вы еще этого не сделали.

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню