Hello KDJ,

This was sent over to me since I've worked quite a bit with more complex 
configurations. You mentioned in your last message that you're using a 
different config file with the same credentials. Can we just for a sanity 
check make sure that all those credentials are working properly?

>From the command line, try this with your refresh token and client 
information to get an access token back, where you substitute your values 
from your config file:

curl --data 
"refresh_token=<INSERT_REFRESH_TOKEN>&client_id=<INSERT_CLIENT_ID>&client_secret=<INSERT_CLIENT_SECRET>&grant_type=refresh_token"
 
-X POST "https://www.googleapis.com/oauth2/v3/token";

With that access token, get the debug information for me, just in case 
something does go wrong later by putting this in your browser:

https:
//www.googleapis.com/oauth2/v3/tokeninfo?access_token=<INSERT_ACCESS_TOKEN>

Save off that information for me in case something goes wrong in this next 
command line. 
With that access token, try this:

curl --header "Authorization: Bearer <INSERT_ACCESS_TOKEN>" --header 
"developerToken: 
<INSERT_DEVELOPER_TOKEN>" --header "clientCustomerId: 
<INSERT_CLIENT_CUSTOMER_ID_WITH_DASHES>" --header "clientSecret: 
<INSERT_CLIENT_SECRET>" 
https://adwords.google.com/api/adwords/reportdownload/v201806 
--data "__rdquery=SELECT CampaignName, Impressions FROM 
CAMPAIGN_PERFORMANCE_REPORT DURING LAST_MONTH&__fmt=CSV"

If anything does not work, then please, in the forum, click on the drop 
down in this message and say* Reply privately to author *with this 
information. If you're only working in Windows, there are alternatives to 
curl that you can use on Windows.

If everything is working in these commands, and you're still having issues, 
then please send me the request ID of the request that failed. If you don't 
have that, then please send me the customer ID by replying privately to the 
author on the forum. I can try to look up your request on our servers to 
see if I have more information here on what exactly failed.

Best,
Nadine, AdWords API Team

On Friday, August 17, 2018 at 6:01:37 PM UTC-4, rentcafed...@gmail.com 
wrote:
>
> Sai,
>
> I have verified that my windows service is using a separate config file.  
> I have also verified that the web application and the windows service are 
> using the same credentials.  The web application and the windows service 
> call the same dll which makes the call to the Adwords API.  Do you have any 
> other suggestions?
>
> KDJ
>
> On Friday, August 17, 2018 at 12:45:34 PM UTC-7, Teja Makani wrote:
>>
>> Hello,
>>
>> Thanks for the details, since the API call is working good for web 
>> application, you might need to check how the windows service is pulling the 
>> credentials and passing it to client libraries. Ideally, the same 
>> credentials should work provided everything else (user making the call, 
>> account etc.,) is same in both the applications. Could you please verify if 
>> there is a separate config file for windows service? Please give it a try 
>> and let me know if the problem still persists.
>>
>> Regards,
>> Sai Teja, AdWords API Team.
>>
>> On Thursday, August 16, 2018 at 1:33:37 PM UTC-4, rentca...@gmail.com 
>> wrote:
>>>
>>> Hi,
>>>
>>> I'm getting error "Failed to refresh access token. See inner exception 
>>> for details." when I try to get campaign information.  The line of code 
>>> is page = campaignService.get(selector) where page = "CampaignPage".  This 
>>> process works when I use it in a web application but not when I use it in a 
>>> windows service.  Below is some information that I hope will be helpful in 
>>> figuring out the problem.  I was not able to get the logging working in the 
>>> windows service.
>>>
>>> CampaignService
>>> {Google.Api.Ads.AdWords.v201806.CampaignService}
>>>     Channel: {System.Runtime.Remoting.Proxies.__TransparentProxy}
>>>     ChannelFactory: {System.ServiceModel.ChannelFactory(Of 
>>> Google.Api.Ads.AdWords.v201806.ICampaignService)}
>>>     ClientCredentials: 
>>> {System.ServiceModel.Description.ClientCredentials}
>>>     EnableDecompression: True
>>>     Endpoint: Address={
>>> https://adwords.google.com/api/adwords/cm/v201806/CampaignService}
>>>     InnerChannel: {System.Runtime.Remoting.Proxies.__TransparentProxy}
>>>     Proxy: {System.Net.WebRequest.WebProxyWrapper}
>>>     RequestHeader: {<RequestHeader xmlns="
>>> https://adwords.google.com/api/adwords/cm/v201806";>
>>>   <clientCustomerId>Replace for security</clientCustomerId>
>>>   <developerToken>Replace for security</developerToken>
>>>   <userAgent />
>>> </RequestHeader>}
>>>     ResponseHeader: Nothing
>>>     Signature: {Google.Api.Ads.AdWords.Lib.AdWordsServiceSignature}
>>>     State: Created {0}
>>>     Timeout: 0
>>>     Url: "
>>> https://adwords.google.com/api/adwords/cm/v201806/CampaignService";
>>>     User: {Google.Api.Ads.AdWords.Lib.AdWordsUser}
>>>     UserAgent: Nothing
>>>
>>> CampaignService.User.Config
>>> {Google.Api.Ads.AdWords.Lib.AdWordsAppConfig}
>>>     AdWordsApiServer: "https://adwords.google.com";
>>>     ClientCustomerId: "Replace for security"
>>>     DeveloperToken: "Replace for security"
>>>     EnableGzipCompression: True
>>>     GMBLoginEmail: ""
>>>     GMBOAuth2RefreshToken: ""
>>>     IncludeUtilitiesInUserAgent: False
>>>     IncludeZeroImpressions: Nothing
>>>     MaskCredentials: True
>>>     MerchantCenterId: 0
>>>     OAuth2AccessToken: ""
>>>     OAuth2ClientId: "Replace for security"
>>>     OAuth2ClientSecret: "Replace for security"
>>>     OAuth2Mode: APPLICATION {0}
>>>     OAuth2PrivateKey: ""
>>>     OAuth2PrnEmail: ""
>>>     OAuth2RedirectUri: "Replace for security"
>>>     OAuth2RefreshToken: "Replace for security"
>>>     OAuth2Scope: "https://www.googleapis.com/auth/adwords";
>>>     OAuth2SecretsJsonPath: ""
>>>     OAuth2ServerUrl: "https://accounts.google.com";
>>>     OAuth2ServiceAccountEmail: Nothing
>>>     Proxy: Nothing
>>>     RetryCount: 0
>>>     Signature: "AwApi-DotNet/23.6.0, Common-Dotnet/9.4.0, .NET 
>>> CLR/4.0.30319.42000, "
>>>     SkipColumnHeader: False
>>>     SkipReportHeader: False
>>>     SkipReportSummary: False
>>>     Timeout: 600000
>>>     UnixTimestamp: 1534434608
>>>     UseRawEnumValues: Nothing
>>>     UserAgent: "Replace for security"
>>>
>>> selector
>>> {Google.Api.Ads.AdWords.v201806.Selector}
>>>     dateRange: {Google.Api.Ads.AdWords.v201806.DateRange}
>>>     fields: {Length=7}
>>>     ordering: Nothing
>>>     paging: {LIMIT 0, 500}
>>>     predicates: Nothing
>>> ?selector.fields
>>> {Length=7}
>>>     (0): "Id"
>>>     (1): "Name"
>>>     (2): "Status"
>>>     (3): "StartDate"
>>>     (4): "EndDate"
>>>     (5): "BaseCampaignId"
>>>     (6): "AdvertisingChannelType"
>>>
>>> {"Failed to refresh access token. See inner exception for details."}
>>> at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean 
>>> includeTaskCanceledExceptions)
>>> at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, 
>>> CancellationToken cancellationToken) 
>>> at 
>>> Google.Api.Ads.Common.OAuth.AdsOAuthProviderImpl.GetAccessTokenForAuthorizationCodeFlow()
>>>   
>>> at 
>>> Google.Api.Ads.Common.OAuth.AdsOAuthProviderImpl.RefreshAccessTokenInOfflineMode()
>>>
>>> Error Occurred Message: Failed to retrieve campaign(s). Stack Trace:    
>>> at YSI.Ads.GoogleAdwordsHelper.GetListOfCampaigns(String during, DateTime 
>>> startDate, DateTime endDate) in 
>>> C:\TFS\Cafés\yCPC\Source\GoogleAdwords.vb:line 1711   at 
>>> YSI.Cafe.RC.SiteManager.AdWordsAutomatedTasks.ImportAdwordsCampaigns() in 
>>> C:\TFS\Cafés\RentCafe\Source\ManagerCafe\AppClasses\AdWordsAutomatedTasks.vb:line
>>>  
>>> 337   at RCDaily.AdwordsImportCampaignRoutine.ImportAdwordsCampaigns() in 
>>> C:\TFS\Cafés\RentCafe\Source\RCDaily\AdwordsImportCampaignsTasks.vb:line 
>>> 33   at RCDaily.AdwordsImportCampaignRoutine.OnExecute(IJobExecutionContext 
>>> context) in 
>>> C:\TFS\Cafés\RentCafe\Source\RCDaily\AdwordsImportCampaignsTasks.vb:line 
>>> 27   at RCDaily.yJob.Execute(IJobExecutionContext context) in 
>>> C:\TFS\Cafés\RentCafe\Source\RCDaily\yJob.vb:line 10 Source: YSI.Ads Inner 
>>> Message 1: One or more errors occurred. Inner Stack Trace 1:    at 
>>> System.Threading.Tasks.Task.ThrowIfExceptional(Boolean 
>>> includeTaskCanceledExceptions)   at System.Threading.Tasks.Task.Wait(Int32 
>>> millisecondsTimeout, CancellationToken cancellationToken)   at 
>>> Google.Api.Ads.Common.OAuth.AdsOAuthProviderImpl.GetAccessTokenForAuthorizationCodeFlow()
>>>   
>>>  at 
>>> Google.Api.Ads.Common.OAuth.AdsOAuthProviderImpl.RefreshAccessTokenInOfflineMode()
>>>  
>>> Source 1: mscorlib Inner Message 2: An error occurred while sending the 
>>> request. Inner Stack Trace 2:    at 
>>> Google.Apis.Http.ConfigurableMessageHandler.<SendAsync>d__59.MoveNext()--- 
>>> End of stack trace from previous location where exception was thrown ---  
>>>  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()   at 
>>> System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
>>>  
>>> task)   at 
>>> Google.Apis.Auth.OAuth2.Requests.TokenRequestExtenstions.<ExecuteAsync>d__0.MoveNext()---
>>>  
>>> End of stack trace from previous location where exception was thrown ---  
>>>  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()   at 
>>> System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
>>>  
>>> task)   at 
>>> Google.Apis.Auth.OAuth2.Flows.AuthorizationCodeFlow.<FetchTokenAsync>d__35.MoveNext()---
>>>  
>>> End of stack trace from previous location where exception was thrown ---  
>>>  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()   at 
>>> System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
>>>  
>>> task)   at 
>>> Google.Apis.Auth.OAuth2.Flows.AuthorizationCodeFlow.<RefreshTokenAsync>d__31.MoveNext()---
>>>  
>>> End of stack trace from previous location where exception was thrown ---  
>>>  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()   at 
>>> System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
>>>  
>>> task)   at 
>>> Google.Apis.Auth.OAuth2.UserCredential.<RefreshTokenAsync>d__16.MoveNext()---
>>>  
>>> End of stack trace from previous location where exception was thrown ---  
>>>  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()   at 
>>> System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
>>>  
>>> task)   at 
>>> Google.Apis.Auth.OAuth2.TokenRefreshManager.<RefreshTokenAsync>d__12.MoveNext()---
>>>  
>>> End of stack trace from previous location where exception was thrown ---  
>>>  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()   at 
>>> System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
>>>  
>>> task)   at 
>>> Google.Apis.Auth.OAuth2.TokenRefreshManager.<GetAccessTokenForRequestAsync>d__10.MoveNext()
>>>  
>>> Source 2: Google.Apis.Core Inner Message 3: Unable to connect to the remote 
>>> server Inner Stack Trace 3:    at 
>>> System.Net.HttpWebRequest.EndGetRequestStream(IAsyncResult asyncResult, 
>>> TransportContext& context)   at 
>>> System.Net.Http.HttpClientHandler.GetRequestStreamCallback(IAsyncResult ar) 
>>> Source 3: System Inner Message 4: No connection could be made because the 
>>> target machine actively refused it 127.0.0.1:8888 Inner Stack Trace 4:  
>>>   at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)   at 
>>> System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, 
>>> Socket s4, Socket s6, Socket& socket, IPAddress& address, 
>>> ConnectSocketState state, IAsyncResult asyncResult, Exception& exception) 
>>> Source 4: System 
>>>
>>> KDJ
>>>
>>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog:
https://googleadsdeveloper.blogspot.com/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

You received this message because you are subscribed to the Google
Groups "AdWords API and Google Ads API Forum" group.
To post to this group, send email to adwords-api@googlegroups.com
To unsubscribe from this group, send email to
adwords-api+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/adwords-api?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"AdWords API and Google Ads API Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to adwords-api+unsubscr...@googlegroups.com.
Visit this group at https://groups.google.com/group/adwords-api.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/adwords-api/2b94b22b-3c5e-42e9-83b2-26b1a711eb77%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
  • ... rentcafedev1
    • ... 'Teja Makani' via AdWords API and Google Ads API Forum
      • ... rentcafedev1
    • ... 'Teja Makani' via AdWords API and Google Ads API Forum
      • ... rentcafedev1
        • ... 'Nadine Sundquist (AdWords API Team)' via AdWords API and Google Ads API Forum
    • ... 'Nadine Sundquist (AdWords API Team)' via AdWords API and Google Ads API Forum

Reply via email to