Posts tagged with ruby-on-rails

So I'm using ruby client library. Version of gem 'google-ads-googleads' is 21.0.0 and Google Ads API version is 13. After initialising client with my credentials, I try to query one of the Google Ads Get Account Hierarchy endpoint, I get Error message:

<Google::Ads::GoogleAds::V13::Errors::GoogleAdsFailure: errors: [<Google::Ads::GoogleAds::V13::Errors::GoogleAdsError: error_code: <Google::Ads::GoogleAds::V13::Errors::ErrorCode: query_error: :UNEXPECTED_END_OF_QUERY>, message: "Error in query: unexpected end of query.">], request_id: "koqtfsaS6CTB0FxlCHucKg">

client = Google::Ads::GoogleAds::GoogleAdsClient.new do |config|       config.client_id = client_id       config.client_secret = client_secret       config.refresh_token = access_token       config.developer_token = developer_token end google_ads_service = client.service.google_ads query = <<~QUERY       SELECT         customer_client.client_customer,         customer_client.level,         customer_client.manager,         customer_client.descriptive_name,         customer_client.currency_code,         customer_client.time_zone,         customer_client.id       FROM customer_client       WHERE customer_client.level <= 1     QUERY begin    request = google_ads_service.search_stream do |search|         search.customer_id = '8148704352'         search.query = query         search.page_size = 100     end     request.each do |response|                           response.results.each do |row|            puts row        end     end rescue Google::Ads::GoogleAds::Errors::GoogleAdsError => e     puts "Error message: #{e.failure}" end 

I tried

query = <<~SQL   SELECT     customer_client.client_customer,     customer_client.level,     customer_client.manager,     customer_client.descriptive_name,     customer_client.currency_code,     customer_client.time_zone,     customer_client.id   FROM customer_client   WHERE customer_client.level <= 1 SQL 

I also tried enclosing query in single quotes like query_with_single_quotes = ''' + query + ''' but the error doesn't go away.

I want to build a web application. Clients can use the web application to read their google Adwrods accounts information( campagins or budgets ).

First, I use oath2 get client's refresh_token and access_token. Using the refresh_token, I can get all adwords id under the client by (https://github.com/googleads/google-ads-ruby)

client = Google::Ads::GoogleAds::GoogleAdsClient.new do |config|   config.client_id = "client_id"   config.client_secret = "client_secret"   config.refresh_token = "refresh_token"   config.login_customer_id = "XXX-XXX-XXXX"   config.developer_token = "XXXXXXXXXXXXXXXX" end accessible_customers = client.service.customer.list_accessible_customers().resource_names 

When I want to get client Adword account information,

resource_name = client.path.customer("XXXXXXXX") customer = client.service.customer.get_customer(resource_name: resource_name) 

I get "GRPC::Unauthenticated: 16:Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential", but the config file can't let me set access_token.

So, where can i set client's access_token, or which step i missed?