无法使用Google-api-php-client为Web应用程序创建WebToken



我正在使用PHP库使用Android Management API。我可以成功更新政策。但是我无法创建Web应用程序所需的WebToken。

我已经设置了一个凭据文件。我做

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

然后,我尝试为请求创建一个网络风格:

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

我的理解是,只需要parentframeurl和权限,其他所有内容都会在答案中设置为:

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

,但我也尝试设置其他值:

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

然后我尝试创建网络访问:

$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(GuzzleHttpPsr7Response), Object(GuzzleHttpPsr7Request), 'Google_Service_...') #1 /var/www/vendor/google/apiclient/src/Google/Task/Runner.php(176): Google_Http_REST::doExecute(Object(GuzzleHttpClient), Object(GuzzleHttpPsr7Request), '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(GuzzleHttpClient), Object(GuzzleHttpPsr7Request), 'Google_Service_ in /var/www/vendor/google/apiclient/src/Google/Http/REST.php on line 118

我不知道怎么了。但是Webtoken部分前适用于其他API调用。

父帧的URL必须使用HTTPS方案。我认为这是您正在遇到的问题。

这是在WebToken资源的文档中提到的,但确实可以更清楚地错误消息。

最新更新