【发布时间】:2017-05-10 19:58:42
【问题描述】:
我正在尝试请求通过 Google OAuth 登录的用户的个人资料信息。我的请求格式正确,我成功登录,但是当我尝试在 PHP 中发出以下请求时,我收到错误 Request Mask cannot be empty。有效路径是:...
但是,从Google People API people.get documentation 可以清楚地看出,请求掩码值是可选的,如果未通过,will return all values except for people.connections.list。这是我的代码:
// The entire OAuth process works up until this point...
// create the service
$service = new Google_Service_People($this->client);
try {
$results = $service->people->get('people/me');
} catch(\Exception $exception) {
echo $exception->getMessage();
exit;
}
这是我从这个错误中得到的异常消息:
{ "error": { "code": 400, "message": "Request mask can not be empty. Valid paths are: [person.addresses, person.age_ranges, person.biographies, person.birthdays, person.bragging_rights, person.cover_photos, person.email_addresses, person.events, person.genders, person.im_clients, person.interests, person.locales, person.memberships, person.metadata, person.names, person.nicknames, person.occupations, person.organizations, person.phone_numbers, person.photos, person.relations, person.relationship_interests, person.relationship_statuses, person.residences, person.skills, person.taglines, person.urls].", "errors": [ { "message": "Request mask can not be empty. Valid paths are: [person.addresses, person.age_ranges, person.biographies, person.birthdays, person.bragging_rights, person.cover_photos, person.email_addresses, person.events, person.genders, person.im_clients, person.interests, person.locales, person.memberships, person.metadata, person.names, person.nicknames, person.occupations, person.organizations, person.phone_numbers, person.photos, person.relations, person.relationship_interests, person.relationship_statuses, person.residences, person.skills, person.taglines, person.urls].", "domain": "global", "reason": "badRequest" } ], "status": "INVALID_ARGUMENT" } }
谁能帮帮我?
更新 1:
当我尝试为请求掩码传递一些值时,$service->people->get('people/me', array("person.names")); 我收到异常消息:Illegal string offset 'type'
【问题讨论】:
-
您使用的是最新版本的 PHP 库吗?如果没有,请尝试更新到最新版本。
-
我遇到了同样的错误,但使用的是 javascript 和网页。但是,我认为自上次工作以来我没有改变任何东西。这对您来说是刚刚开始的新问题,还是只是尝试实施?
-
我从今天开始在 Go 库中遇到同样的错误。 (我已经好几个星期没碰我的代码了。)也许最近发生了一些变化?
-
普通的休息电话也会发生这种情况
-
是的,我使用的是最新版本的 PHP 库。我在 Laravel 框架中使用 composer,所以我的 composer.json 文件中定义的版本是
"google/apiclient": "^2.0"。我删除了vendor文件夹并使用composer install完全重新安装了依赖项,但仍然遇到同样的问题。我不确定是否发生了变化,但它们的内部 API 逻辑似乎发生了一些变化。
标签: google-oauth google-people-api