Google 索引 API 错误 json 文件
Google indexing API wrong json file
您好,我正在尝试使用 Google 索引 API。我使用了本教程 - https://developers.google.com/search/apis/indexing-api/v3/prereqs
我使用了这个 php 库 - 不同的分支 - v1-master 因为我不使用作曲家所以我不得不使用 autoload.php
https://github.com/googleapis/google-api-php-client/tree/master
这是我的代码:
require_once($_SERVER["DOCUMENT_ROOT"] . '/assets/google-api-php-client/src/Google/autoload.php');
require_once($_SERVER["DOCUMENT_ROOT"] . '/assets/google-api-php-client/examples/templates/base.php');
$client = new Google_Client();
// service_account_file.json is the private key that you created for your service account.
$client->setAuthConfig($_SERVER["DOCUMENT_ROOT"] . '/assets/google-api-php-client/serviceAccount');
$client->addScope('https://www.googleapis.com/auth/indexing');
// Get a Guzzle HTTP Client
$httpClient = $client->authorize();
$endpoint = 'https://indexing.googleapis.com/v3/urlNotifications:publish';
// Define contents here. The structure of the content is described in the next step.
$content = '{
"url": "http://example.com/jobs/42",
"type": "URL_UPDATED"
}';
$response = $httpClient->post($endpoint, [ 'body' => $content ]);
$status_code = $response->getStatusCode();
- 我创建了服务帐户
- 已下载服务帐户 json 文件
这就是 json 的样子
- 添加到 json 的路径,如上所示
- 我在 console.developers.google.com 中为我的项目启用了索引 API
- json 加载
但我收到错误 未捕获 Google_Exception:无效的客户端密码 JSON 文件。
此主题与 - google-api-php-client: Invalid client secret JSON file
相关
但我无法解决它,我卡住了
问题已解决,根据此处的问题 - https://github.com/googleapis/google-api-php-client/issues/2025#issuecomment-762634717,自动加载已被删除,整个包依赖于 composer 的自动加载器(如果您正在使用它)。
如果你不使用它,作者在这里指出了带有自动加载器的最后一个可用版本
https://github.com/googleapis/google-api-php-client/releases/tag/v2.8.2
下载此版本并在您的代码中只包含一个 autoload.php
require_once($_SERVER["DOCUMENT_ROOT"] . '/assets/google-api-php-client/vendor/autoload.php');
完整代码在这里
require_once($_SERVER["DOCUMENT_ROOT"] . '/assets/google-api-php-client/vendor/autoload.php');
$client = new Google_Client();
// service_account_file.json is the private key that you created for your service account.
$client->setAuthConfig($_SERVER["DOCUMENT_ROOT"] . '/assets/google-api-php-client/mykey-pre-10b793743427.json');
$client->addScope('https://www.googleapis.com/auth/indexing');
// Get a Guzzle HTTP Client
$httpClient = $client->authorize();
$endpoint = 'https://indexing.googleapis.com/v3/urlNotifications:publish';
// Define contents here. The structure of the content is described in the next step.
$content = '{
"url": "https://my-site.sk/news.php?ID=157",
"type": "URL_UPDATED"
}';
$response = $httpClient->post($endpoint, [ 'body' => $content ]);
$status_code = $response->getStatusCode();
return $status_code;
另外不要忘记将 client_email 从您的 json 添加到 Search Console 所有者中,方法是点击设置 - 用户和权限 - 点击您帐户旁边的点 - 点击管理所有者 - 添加新的所有者(将其添加到以前站点中的用户是不够的)- 您将获得 403 代码。
如果操作成功,您将获得代码 200,但在 Search Console 中不会发生任何变化,因为您启动了索引作业,这可能会在几个小时后 运行
您好,我正在尝试使用 Google 索引 API。我使用了本教程 - https://developers.google.com/search/apis/indexing-api/v3/prereqs
我使用了这个 php 库 - 不同的分支 - v1-master 因为我不使用作曲家所以我不得不使用 autoload.php https://github.com/googleapis/google-api-php-client/tree/master
这是我的代码:
require_once($_SERVER["DOCUMENT_ROOT"] . '/assets/google-api-php-client/src/Google/autoload.php');
require_once($_SERVER["DOCUMENT_ROOT"] . '/assets/google-api-php-client/examples/templates/base.php');
$client = new Google_Client();
// service_account_file.json is the private key that you created for your service account.
$client->setAuthConfig($_SERVER["DOCUMENT_ROOT"] . '/assets/google-api-php-client/serviceAccount');
$client->addScope('https://www.googleapis.com/auth/indexing');
// Get a Guzzle HTTP Client
$httpClient = $client->authorize();
$endpoint = 'https://indexing.googleapis.com/v3/urlNotifications:publish';
// Define contents here. The structure of the content is described in the next step.
$content = '{
"url": "http://example.com/jobs/42",
"type": "URL_UPDATED"
}';
$response = $httpClient->post($endpoint, [ 'body' => $content ]);
$status_code = $response->getStatusCode();
- 我创建了服务帐户
- 已下载服务帐户 json 文件 这就是 json 的样子
- 添加到 json 的路径,如上所示
- 我在 console.developers.google.com 中为我的项目启用了索引 API
- json 加载
但我收到错误 未捕获 Google_Exception:无效的客户端密码 JSON 文件。
此主题与 - google-api-php-client: Invalid client secret JSON file
相关但我无法解决它,我卡住了
问题已解决,根据此处的问题 - https://github.com/googleapis/google-api-php-client/issues/2025#issuecomment-762634717,自动加载已被删除,整个包依赖于 composer 的自动加载器(如果您正在使用它)。 如果你不使用它,作者在这里指出了带有自动加载器的最后一个可用版本
https://github.com/googleapis/google-api-php-client/releases/tag/v2.8.2
下载此版本并在您的代码中只包含一个 autoload.php
require_once($_SERVER["DOCUMENT_ROOT"] . '/assets/google-api-php-client/vendor/autoload.php');
完整代码在这里
require_once($_SERVER["DOCUMENT_ROOT"] . '/assets/google-api-php-client/vendor/autoload.php');
$client = new Google_Client();
// service_account_file.json is the private key that you created for your service account.
$client->setAuthConfig($_SERVER["DOCUMENT_ROOT"] . '/assets/google-api-php-client/mykey-pre-10b793743427.json');
$client->addScope('https://www.googleapis.com/auth/indexing');
// Get a Guzzle HTTP Client
$httpClient = $client->authorize();
$endpoint = 'https://indexing.googleapis.com/v3/urlNotifications:publish';
// Define contents here. The structure of the content is described in the next step.
$content = '{
"url": "https://my-site.sk/news.php?ID=157",
"type": "URL_UPDATED"
}';
$response = $httpClient->post($endpoint, [ 'body' => $content ]);
$status_code = $response->getStatusCode();
return $status_code;
另外不要忘记将 client_email 从您的 json 添加到 Search Console 所有者中,方法是点击设置 - 用户和权限 - 点击您帐户旁边的点 - 点击管理所有者 - 添加新的所有者(将其添加到以前站点中的用户是不够的)- 您将获得 403 代码。 如果操作成功,您将获得代码 200,但在 Search Console 中不会发生任何变化,因为您启动了索引作业,这可能会在几个小时后 运行