我需要启动Google云实例并在我的流程结束时停止。 所以我尝试了https://cloud.google.com/compute/docs/reference/rest/v1/instances/get
的api来电创建了API Key和oAuth客户端ID,并尝试在邮递员应用程序中进行测试。
标题Authorization : Bearer <api_key>
中使用的API密钥以及key=<api_key>
但这两种方法都给出了错误401 login required
。
然后我找到了API Explorer
https://developers.google.com/apis-explorer/
我也有同样的错误。
我做错了什么。 我需要实现实例启动和停止PHP代码,因为它是后台进程。
PHP卷曲响应
{
"error": {
"errors": [
{
"domain": "global",
"reason": "authError",
"message": "Invalid Credentials",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Invalid Credentials"
}
}
答案 0 :(得分:2)
我认为使用env变量实际执行此操作的最简单方法是,google api php客户端库有一个简洁的方法。
require_once __DIR__ . '/vendor/autoload.php';
putenv('GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json');
$client = new Google_Client();
$client->setApplicationName('RandomNameYouNeedToInsert/0.1');
$client->addScope(array('https://www.googleapis.com/auth/compute'));
$client->useApplicationDefaultCredentials();
$service = new Google_Service_Compute($client);
// TODO: Update placeholder values.
project = 'my-project';
$zone = 'my-zone';
$instance = 'my-instance';
$response = $service->instances->start($project, $zone, $instance);
// TODO: Check if the response satisfies your request.