猿问

未找到方法。使用 Google 我的商家 API 时出错

我使用 google api 客户端从帐户列表函数中获取 404。

我已经使用 OAuth2.0 获得了访问令牌。除此之外,我已经通过https://console.developers.google.com为 OAuth 2.0 启用了 Google My Business API。

■这里是环境

PHP 7.2.3

Ubuntu 18.04 LTS

谷歌/apiclient ^2.5

我想要执行的功能如下。 https://developers.google.com/my-business/reference/rest/v4/accounts/list

我使用以下链接中的作曲家安装谷歌客户端库。 https://github.com/googleapis/google-api-php-client

由于谷歌我的商业图书馆是分开的,我使用这个程序。 https://developers.google.com/my-business/samples

产生404的步骤是...

    $client = new \Google_Client();

    $client->setApplicationName("post_dev");       // app name

    $client->setApprovalPrompt('force');

    $client->setAccessType('offline');

    $client->setAccessToken($credential);

    $client->addScope("https://www.googleapis.com/auth/business.manage");                                                                                        

    $client->addScope("https://www.googleapis.com/auth/plus.business.manage");

    $gmbService = new \Google_Service_MyBusiness($client);

    $results = $gmbService->accounts->listAccounts();   


变量 $credential 具有以下值。


client_id

client_secret

access_token

expires_in

refresh_token

执行程序后,我收到如下 404 错误。


Google_Service_Exception[

  404

]: {

  "error": {

    "code": 404,

    "message": "Method not found.",

    "errors": [

      {

        "message": "Method not found.",

        "domain": "global",

        "reason": "notFound"

      }

    ],

    "status": "NOT_FOUND"

  }

}


慕后森
浏览 141回答 4
4回答

MM们

我无法调用API的原因是“我的公司已经有一个白名单项目可以访问Google My Business API。目前,他们只将每个企业的一个项目列入白名单”。因此,我无法调用API。

哔哔one

到目前为止,我可以在这里使用 PHP 库 - https://developers.google.com/my-business/samples/previousVersions但上面的答案是一个巨大的帮助 - 我有完全相同的问题,已经“整理”了我的项目 - 在被授予访问 Google My Business API 并看到它可用于我的其他项目后,我错误地认为我的其他项目将能够使用它 - 错误的!很高兴我在这里找到了答案。幸运的是,我能够恢复我删除的项目,并且使用该项目立即可以工作。

qq_笑_17

此错误与您的访问令牌无关。它找不到您正在使用的方法。Google_Service_MyBusiness 不是 Google api php 客户端库的一部分。我的业务 API 与其他 api 不同,它未列在通过 Discovery API 提供的 API 目录中,并且需要开发人员密钥并接受“我的业务”中的项目。因为库生成脚本运行时无法生成它。我正在通过一些渠道来更新该文档页面。团队注释 2018 年 11 月 1 日有一种工具可以帮助开发人员维护此类服务类的自己的版本。当它准备就绪并且您有一个启用了“我的业务”的项目时,您应该能够运行:export API_KEY=yourkey bin/generate 'https://mybusiness.googleapis.com/$discovery/rest?version=v4&key=$API_KEY' generated-output然后您可以将 generated-output/mybusiness-v4 的内容移动到包含路径中的任何位置。众所周知,随着新版本的出现,发现 URL 会发生变化,因此请密切关注https://developers.google.com/my-business/reference/rest/我正在等待了解此事的进展。

HUWWW

发生这种情况是因为您尝试使用非白名单项目与“Google 我的商家”API 进行交互。我遇到了同样的问题。就我而言,我提交了白名单项目以解锁“Google 我的商家”API 库。然后,几周后,我在同一个 Google Cloud Platform 帐户下创建了一个新项目,只是为了设置一个更合适的名称。这就是问题的根源!即使您看到在帐户级别启用了 GMB 库,它也只能在项目级别运行。这就是您收到 404 错误的原因。因此,我将所有内容切换到我的原始项目(同意屏幕设置、Oauth 客户端等)...在我的本地主机应用程序上也是如此,使用 Laravel Lumen 7 开发。经过这几对更改后,一切正常!注意: Google 只允许您将每个帐户 1 个项目列入白名单!如果您的项目/应用程序已获得 Google 批准,请使用它!相反,创造新的。
随时随地看视频慕课网APP
我要回答