Bing Ads API - 无效的凭据错误

时间:2016-03-25 20:39:03

标签: php bing-api

因此,我们的BingAds报告程序已经运行了好几个月,突然遇到105(InvalidCredentials)错误。访问令牌已过期,因此我请求了一个新的成功,为我提供了一个将来到期的新访问令牌。

    $accessTokenExchangeUrl = "https://login.live.com/oauth20_token.srf";

    $accessTokenExchangeParams = array();
    $accessTokenExchangeParams['client_id']     = $this->client_id();
    $accessTokenExchangeParams['client_secret'] = $this->client_secret();
    $accessTokenExchangeParams['grant_type']    = 'refresh_token';
    $accessTokenExchangeParams['refresh_token'] = $code;

    // Create an HTTP client and execute an HTTP POST request to
    // exchange the authorization token for an access token and
    // refresh token.
    $httpClient = new HttpClient();
    $responseJson = $httpClient->postData( $accessTokenExchangeUrl, $accessTokenExchangeParams);

    // The response formatted in json
    $responseArray = json_decode($responseJson, TRUE);

    // If the response contains an access_token element, it was successful.
    // If not, an error occurred - throw an exception
    if (isset($responseArray['access_token']))
    {
        return $responseArray;

    }

但是然后使用该新令牌会导致105错误:

$proxy = \BingAds\Proxy\ClientProxy::ConstructWithCredentials($wsdl, $bingUserName, 
                                                                     $bingPasswd, 
                                                                     $developer_token, 
                                                                     $access_token);

$report = new KeywordPerformanceReportRequest();
$report->Format = ReportFormat::Tsv;
$report->ReportName = 'Keyword Performance Report';
$report->ReturnOnlyCompleteData = false;

    <report definition>

$encodedReport = new SoapVar($report, SOAP_ENC_OBJECT, 'KeywordPerformanceReportRequest', $proxy->GetNamespace());

$this->bingReportRequestID = $this->_BingSubmitGenerateReport( $proxy, $encodedReport );
$request = new SubmitGenerateReportRequest();
$request->ReportRequest = $report;

$retval = $proxy->GetService()->SubmitGenerateReport($request)->ReportRequestId;
     ::> throws a SoapFault

有什么想法吗?就像我说的那样,几个月来一直很好,现在突然间没什么了。

1 个答案:

答案 0 :(得分:0)

显然您正在使用refresh_token进行身份验证。使用新的令牌,您需要生成新的refresh_token并使用该令牌。

相关问题