我最近开始使用Bing Ads api来管理我的广告和广告系列,但我在验证用户身份时遇到了问题(而不是oauth身份验证)。
我使用oauth通过以下
对我的用户进行了身份验证private String devToken = "ZZZZZ";
private String clientId = "AAA0BBB-XXXX-AAAAA";
protected static String UserName = "a.v@h.c";
protected static String Password = "********";
// To get the initial access and refresh tokens you must call requestAccessAndRefreshTokens with the authorization redirection URL.
OAuthTokens tokens = oAuthDesktopMobileAuthCodeGrant.requestAccessAndRefreshTokens(url);
System.out.println("Access token: " + tokens.getAccessToken());
System.out.println("Refresh token: " + tokens.getRefreshToken());
authorizationData = new AuthorizationData();
authorizationData.setDeveloperToken(getDevToken());
authorizationData.setAuthentication(oAuthDesktopMobileAuthCodeGrant);
这样可以对我的用户进行身份验证,因为我可以使用ICustomerManagementService.class
就帐户相关信息正常使用
customerServiceClient = new ServiceClient<>(authorizationData, ICustomerManagementService.class);
ArrayOfAccount accounts = searchAccountsByUserId(user.getId());
以上工作完美。但是,当我尝试使用ICampaignManagementService.class
时,如下所示
campaignServiceClient = new ServiceClient<>(authorizationData, ICampaignManagementService.class);
GetAdsByAdGroupIdRequest cReq = new GetAdsByAdGroupIdRequest();
cReq.setAdGroupId(1234567890L);
campaignServiceClient.getService().getAdsByAdGroupId(cReq);
我收到错误代码106,说用户未获得授权。
The user does not represent a authorized developer.
106
在这方面有任何帮助吗?
答案 0 :(得分:2)
请尝试设置CustomerId和CustomerAccountId标头元素(AuthorizationData的CustomerId和AccountId)。这些标头不适用于客户管理服务,但适用于Campaign Management服务。如果这不能解决问题,请随时将SOAP请求+响应发送到support进行调查。我希望这有帮助!