You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无Google Workspace/G-Suite,PHP网站如何用服务账户获取OAuth2令牌对接My Business API

无Google Workspace时获取My Business API OAuth2令牌的可行方案

首先明确:My Business Profile API(原My Business API)不支持服务账户直接访问个人商家账号——域委派是Google Workspace专属功能。但你可以通过以下两种方案实现需求,无需Workspace权限:

方案1:标准OAuth2授权码流程(推荐,适合个人商家)

这是官方针对非Workspace用户的认证方案,直接让商家账号持有者授权你的应用即可:

    1. 在Google Cloud控制台创建OAuth2客户端ID:
    • 进入「API和服务」>「凭据」>「创建凭据」>「OAuth客户端ID」
    • 应用类型选「Web应用」,添加你的PHP网站回调URL(比如https://your-domain.com/google-callback.php)
    1. 实现PHP端授权逻辑:
    • 引导用户跳转Google授权页:构造包含scope=https://www.googleapis.com/auth/business.manage的授权URL,让商家账号用户登录并授权你的应用
    • 回调接收授权码:用户授权后,Google会将授权码发送到你设置的回调URL
    • 兑换令牌:用授权码、客户端ID、客户端密钥调用Google令牌端点,获取access_token(短期有效)和refresh_token(长期有效)
    • 存储刷新令牌:后续可通过refresh_token定期获取新的access_token,无需用户重复授权
    1. 调用API获取数据:
    • 携带有效access_token请求API端点,比如GET https://mybusiness.googleapis.com/v4/accounts/{accountId}/locations,即可获取商家名称、地址、营业时间等数据

方案2:服务账户+授权码模拟(适合批量管理场景)

如果一定要用服务账户作为令牌管理载体,本质还是需要先通过OAuth2授权码流程获取商家账号的授权,再让服务账户接管令牌:

    1. 按方案1的步骤获取商家账号的refresh_token
    1. 在Google Cloud控制台给服务账户添加「Service Account Token Creator」角色
    1. PHP端用服务账户生成JWT令牌,调用Google令牌端点,传入之前获取的refresh_token和服务账户JWT,换取服务账户可用的访问令牌
  • 注意:这种方式并没有绕过用户授权要求,只是将令牌的管理逻辑转移到了服务账户

关键注意事项

  • My Business Profile API需要提交应用审核,确保你的应用符合Google的API使用政策,否则无法调用核心数据接口
  • refresh_token属于敏感信息,必须加密存储,避免泄露
  • 可以用Google官方的google/apiclient库简化认证流程,示例代码:
    require __DIR__ . '/vendor/autoload.php';
    
    $client = new Google\Client();
    $client->setApplicationName('My Business Data Fetcher');
    $client->setScopes(['https://www.googleapis.com/auth/business.manage']);
    $client->setAuthConfig('path/to/your-client-secret.json');
    $client->setAccessType('offline'); // 确保能获取refresh_token
    
    // 处理授权回调
    if (isset($_GET['code'])) {
        $tokenData = $client->fetchAccessTokenWithAuthCode($_GET['code']);
        $client->setAccessToken($tokenData);
        // 将$tokenData['refresh_token']加密后存入数据库
    }
    

内容的提问来源于stack exchange,提问作者sneps

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 00:52:28