Невозможно создать iframe WebToken для веб-приложения с помощью google-api-php-client - PullRequest
0 голосов
/ 29 апреля 2019

Я использую библиотеку PHP для использования API управления Android. Я могу успешно обновить политику. Но я не могу создать WebToken, необходимый для iframe веб-приложения.

Я установил файл учетных данных. Я делаю

$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->addScope("https://www.googleapis.com/auth/androidmanagement");
$client->setApplicationName("MyAppName");
$androidmanagementService = new Google_Service_AndroidManagement($client);

Затем я пытаюсь создать WebToken для запроса:

$webTokens = $androidmanagementService->enterprises_webTokens;
$webToken = new Google_Service_AndroidManagement_WebToken();

Насколько я понимаю, нужны только ParentFrameUrl и Permissions, все остальное будет установлено в ответе:

$webToken->setPermissions(array("APPROVE_APPS"));
$webToken->setParentFrameUrl("http://37.71.157.174/mdm/");

Но я также попытался установить другие значения:

//$webToken->setName("MyWebAppView");
//$webToken->setValue("98784");

Затем я пытаюсь создать WebToken:

$webtoken = $webTokens->create("enterprises/entname", $webToken);

И я всегда получаю это исключение Google_Service_Exception:

{ "error": { "code": 400, "message": "Invalid parameter: tokenSpec.parent", "errors": [ { "message": "Invalid parameter: tokenSpec.parent", "domain": "global", "reason": "badRequest" } ], "status": "INVALID_ARGUMENT" } }

Полное исключение PHP:

Uncaught Google_Service_Exception: { "error": { "code": 400, "message": "Invalid parameter: tokenSpec.parent", "errors": [ { "message": "Invalid parameter: tokenSpec.parent", "domain": "global", "reason": "badRequest" } ], "status": "INVALID_ARGUMENT" } } in /var/www/vendor/google/apiclient/src/Google/Http/REST.php:118 Stack trace: #0 /var/www/vendor/google/apiclient/src/Google/Http/REST.php(94): Google_Http_REST::decodeHttpResponse(Object(GuzzleHttp\Psr7\Response), Object(GuzzleHttp\Psr7\Request), 'Google_Service_...') #1 /var/www/vendor/google/apiclient/src/Google/Task/Runner.php(176): Google_Http_REST::doExecute(Object(GuzzleHttp\Client), Object(GuzzleHttp\Psr7\Request), 'Google_Service_...') #2 /var/www/vendor/google/apiclient/src/Google/Http/REST.php(58): Google_Task_Runner->run() #3 /var/www/vendor/google/apiclient/src/Google/Client.php(798): Google_Http_REST::execute(Object(GuzzleHttp\Client), Object(GuzzleHttp\Psr7\Request), 'Google_Service_ in /var/www/vendor/google/apiclient/src/Google/Http/REST.php on line 118

Понятия не имею, что не так. Но все до части WebToken работает для другого вызова API.

1 Ответ

0 голосов
/ 30 апреля 2019

URL родительского фрейма должен использовать схему HTTPS. Я думаю, что это проблема, которую вы решаете.

Это упоминается в документации ресурса WebToken , но это правда, что сообщение об ошибке может быть более четким.

...