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

使用BingAds-PHP-SDK调用GetUser()时遇InvalidCredentials错误

解决Bing Ads PHP SDK调用GetUser()时的InvalidCredentials错误

你说已经通过OAuth成功拿到了访问令牌和刷新令牌,但调用GetUser()接口时碰到了错误码105的InvalidCredentials异常,这个问题我之前在对接Bing Ads API时也遇到过,给你几个实用的排查方向:

  • 确认SDK是否正确配置了所有必要的认证信息
    很多时候大家只记得传入OAuth令牌,但容易漏掉开发者令牌(Developer Token)。在Bing Ads PHP SDK里,你需要同时配置OAuth令牌和开发者令牌,示例代码如下:

    $authorizationData = new \Microsoft\BingAds\Auth\AuthorizationData();
    $authorizationData->setAuthentication(
        new \Microsoft\BingAds\Auth\OAuthTokens(
            '你的访问令牌',
            '你的刷新令牌',
            time() + 3600 // 过期时间,根据实际情况设置
        )
    );
    $authorizationData->setDeveloperToken('你的开发者令牌');
    // 后续初始化ServiceClient并调用GetUser()
    

    开发者令牌需要你在Bing Ads开发者中心申请,没有它的话哪怕OAuth令牌正确,也会触发认证失败。

  • 检查账号状态是否正常
    错误提示里明确提到了"the account is inactive",你可以登录Bing Ads后台,查看当前认证的账号是否处于正常激活状态——有没有被暂停、禁用,或者是否存在未完成的账号验证步骤。账号状态异常会直接导致认证失败。

  • 验证OAuth权限范围是否正确
    回顾一下你发起OAuth授权请求时设置的scope参数,必须包含https://ads.microsoft.com/ads.manage这个核心权限(如果是沙箱环境则是https://sandbox.ads.microsoft.com/ads.manage)。如果权限范围不包含访问用户信息的权限,即使拿到令牌也无法调用GetUser()接口。

  • 确认环境一致性
    如果你使用的是Bing Ads沙箱环境的SDK,那必须确保你的OAuth令牌也是从沙箱的授权端点获取的;如果是生产环境,要对应生产环境的端点。沙箱和生产环境的令牌是不互通的,环境不匹配会直接触发认证错误。

  • 检查令牌的有效性
    可以用JWT解码工具查看令牌的内容:

    • 确认exp字段对应的过期时间是否还在有效期内(有时候令牌生成后可能因为时区问题提前失效);
    • 确认aud字段是否正确指向Bing Ads的API地址(沙箱是https://sandbox.api.bingads.microsoft.com,生产是https://api.bingads.microsoft.com)。

如果以上步骤都排查过还是无法解决,建议重新走一遍OAuth授权流程,重新获取令牌——有时候授权过程中可能会出现隐性的参数错误,重新生成令牌能解决这类问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:23:51