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

Google Business Messaging API集成问题及自定义聊天框开发咨询

问题1:找不到Business Messages API的误区与解决方法
  • 操作误区:直接在Google Cloud Console的API库中搜索Business Messages API,忽略了该API需要先通过Business Communications平台关联到你的Cloud项目才能显示。
  • 正确步骤:
    1. 登录官方Business Communications管理平台,使用你的谷歌商家账户登录。
    2. 创建或选择一个代理(Agent),在创建流程中关联到你的Google Cloud项目(无项目会引导你创建)。
    3. 完成代理创建后,回到Google Cloud Console的API仪表盘,即可找到并启用Business Messages API。
问题2:使用授权令牌替代service.json的误区与实现方式
  • 操作误区:混淆了Service Account(service.json)和OAuth 2.0用户授权两种机制。service.json适用于单商家、服务器端无用户交互的场景,而你的多商家管理需求需要用OAuth 2.0用户授权,让每个商家主动授权你的应用访问他们的Business Messages资源。
  • Laravel中基于Google\Client()的实现步骤:
    1. 在Google Cloud Console配置OAuth 2.0客户端ID:
      • 进入「API和服务」→「凭据」,创建「OAuth客户端ID」,应用类型选「Web应用」,添加你的Laravel应用回调地址(如/auth/google/callback)。
    2. 初始化Google Client:
      $client = new Google\Client();
      $client->setClientId(env('GOOGLE_OAUTH_CLIENT_ID'));
      $client->setClientSecret(env('GOOGLE_OAUTH_CLIENT_SECRET'));
      $client->setRedirectUri(env('GOOGLE_OAUTH_REDIRECT_URI'));
      // 添加Business Messages必要权限范围
      $client->addScope('https://www.googleapis.com/auth/businessmessages');
      // 启用离线访问以获取刷新令牌
      $client->setAccessType('offline');
      $client->setPrompt('consent');
      
    3. 引导商家完成授权:
      • 生成授权URL供商家访问:$authUrl = $client->createAuthUrl();
      • 在回调路由中用授权码交换令牌并存储:
        $token = $client->fetchAccessTokenWithAuthCode($request->code);
        // 将$token['refresh_token']与商家信息绑定后存入数据库
        
    4. 调用API时使用商家的刷新令牌:
      // 从数据库取出对应商家的令牌数据
      $client->setAccessToken($tokenFromDb);
      // 令牌过期时自动刷新
      if ($client->isAccessTokenExpired()) {
          $client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());
          $newToken = $client->getAccessToken();
          // 更新数据库中的令牌信息
      }
      // 实例化Business Messages服务并执行API调用
      $service = new Google\Service\BusinessMessages($client);
      // 示例:获取指定代理的聊天记录
      $conversations = $service->conversations->listConversations($agentId);
      
多商家聊天管理面板核心实现要点
  • 数据库设计:存储商家基础信息、OAuth刷新令牌、关联的代理ID(Agent ID)等字段。
  • 授权隔离:每个商家首次使用时需完成独立的Google OAuth授权,确保令牌与商家一一对应。
  • API权限控制:调用API时严格使用对应商家的令牌,保证商家只能访问自身关联代理的聊天数据。
  • 令牌维护:定时检查令牌有效期,自动刷新并更新数据库,避免因令牌过期导致API调用失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 17:45:44