2014-10-13 4 views
0

EDITВставка учетной записи с помощью Google Mirror API

Мы сообщили об этом в Google, и они решили. Теперь ошибка исчезла, но $service->accounts->insert теперь возвращает только null вместо учетной записи.

Я пытаюсь вставить учетную запись через Google Mirror API. Так что я делаю:

Client

$client = new Google_Client(); 
$client->setApplicationName($name); 
$client->setClientId($client_id); 
$client->setDeveloperKey($key); 

Сервис

$service = new Google_Service_Mirror($client); 

$key = file_get_contents($key_file_location); 
$cred = new Google_Auth_AssertionCredentials(
    $service_account_name, 
    [ 
     'https://www.googleapis.com/auth/glass.thirdpartyauth' 
    ], 
    $key 
); 
$client->setAssertionCredentials($cred); 
if($client->getAuth()->isAccessTokenExpired()) { 
    $client->getAuth()->refreshTokenWithAssertion($cred); 
} 
$_SESSION['service_token'] = $client->getAccessToken(); 

// THIS IS NOT WORKING 
$acc = insert_account($service, $user_token, $user_mail); 

Вставка счет

function insert_account($service, $userToken, $email) { 

    $accountType = 'do.sli'; 

    $userDataArray= array(); 
    $userData1= new Google_Service_Mirror_UserData(); 
    $userData1->setKey('some'); 
    $userData1->setValue('data'); 
    $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); 
    $postBody->setFeatures(['access']); 

    try { 
     $account = $service->accounts->insert($userToken, $accountType, $email, $postBody); 
    } catch (Exception $e) { 
     var_dump($e->getMessage()); 
    } 
    return $account; 
} 

И var_dump показать мне это

Error calling POST https://www.googleapis.com/mirror/v1/accounts/USER_TOKEN/ACCOUNT/EMAIL?key=DEVELOPERS_KEY: (400) Invalid Value

Я не уверен, что я делаю неправильно ... Я пробовал много вещей. Не уверен, что проверить. Я пытаюсь аутентифицировать пользователя из Glass Store в нашем веб-приложении и вставлять учетную запись, но это происходит.

Спасибо!

ответ

1

Эта ошибка обычно возникает, когда используемая вами accountType не соответствует той, которая была введена в бэкэнд MyGlass: убедитесь, что вы предоставили команду обзора accountType, которую вы хотите использовать, и дважды проверьте наличие опечаток.

+0

Мы сообщили об этом в Google, и они решили. Теперь ошибка исчезла, но '$ service-> accounts-> insert' теперь возвращает только« null »вместо учетной записи. – Kamil

+0

Тело ответа «null» на самом деле предназначено: при успехе API ответит кодом ответа «201 нет содержимого». – Alain

+0

, но в документации указано: 'В случае успеха этот метод возвращает ресурс учетных записей в теле ответа.'. Итак, вы в основном говорите, что ответ «null» - успешная вставленная учетная запись? – Kamil

1

Я абсолютно уверен, что у вас нет доступа к этому API, прежде чем ваше приложение будет принято в «Магазин» посуды.

См: https://developers.google.com/glass/develop/gdk/authentication

+0

но, я принял это приложение в магазине je, это только для наших DEV только, но он уже в магазине, поэтому у меня есть доступ – Kamil