Google Adwords OAuth"错误" :" invalid_client"例外

时间:2016-05-12 13:59:02

标签: c# asp.net oauth google-adwords

我继承了一个谷歌adwords项目,该项目使用OAuth 2.0 for Installed Applications连接到谷歌adwords API。

我在第一道障碍中摔倒了;我从github下载了以下示例项目;

https://github.com/googleads/googleads-dotnet-lib/tree/master/examples/AdWords/CSharp/OAuth

当我按照指示将所有细节放入web.config时,它不起作用。 我已经投入了;

  • 开发人员令牌
  • 客户ID
  • 刷新令牌。

这对我来说都是全新的,我的理解是,当使用刷新令牌时,应用程序应该获得一个新的访问令牌并允许访问API。

screengrab of the sample app

上面的图片显示了示例应用界面,当我点击"获取广告系列"链接收到异常消息;

Google.Api.Ads.Common.Lib.AdsOAuthException was caught
  HResult=-2146233088
  Message=Failed to refresh access token.
{
  "error" : "invalid_client"
}
  Source=Google.Ads.Common
  StackTrace:
       at Google.Api.Ads.Common.Lib.OAuth2ProviderForApplications.RefreshAccessTokenInOfflineMode()
       at Google.Api.Ads.Common.Lib.OAuth2ProviderForApplications.RefreshAccessToken()
       at Google.Api.Ads.Common.Lib.OAuth2ProviderBase.RefreshAccessTokenIfExpiring()
       at Google.Api.Ads.Common.Lib.OAuth2ProviderForApplications.RefreshAccessTokenIfExpiring()
       at Google.Api.Ads.Common.Lib.OAuth2ProviderBase.GetAuthHeader()
       at Google.Api.Ads.Common.Lib.OAuth2ProviderForApplications.GetAuthHeader()
       at Google.Api.Ads.AdWords.Lib.AdWordsSoapClient.InitForCall(String methodName, Object[] parameters)
       at Google.Api.Ads.Common.Lib.AdsSoapClient.MakeApiCall(String methodName, Object[] parameters)
       at Google.Api.Ads.Common.Lib.AdsSoapClient.Invoke(String methodName, Object[] parameters)
       at Google.Api.Ads.AdWords.v201601.CampaignService.get(Selector serviceSelector)
       at Google.Api.Ads.AdWords.Examples.CSharp.OAuth.Default.OnGetCampaignsButtonClick(Object sender, EventArgs eventArgs) in c:\Adwords\examples\AdWords\CSharp\OAuth\Default.aspx.cs:line 130
  InnerException: 

应用程序在以前的应用程序中使用这些凭据,似乎没有问题。

我已经高低搜索了这个问题的答案,例外情况说访问令牌无法刷新,但模棱两可的推理并没有多大帮助。

有人可以提供进一步的见解吗?

非常感谢。

1 个答案:

答案 0 :(得分:0)

您应该在webconfig中设置OAuth2ClientId和OAuth2ClientSecret值。

  <add key="OAuth2ClientId" value="your client id"/>
<add key="OAuth2ClientSecret" value="your client secret"/>

您可以从中获取clientid和客户端密码 https://console.developers.google.com/project

提供OAuth2客户端ID和密码。你可以创建一个 https://console.developers.google.com/project。看到 https://developers.google.com/identity/protocols/OAuth2WebServer          了解更多详情。