google-dfp-api 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ChangeLog +7 -1
- data/README +11 -11
- data/Rakefile +13 -11
- data/examples/v201103/common/error_handling.rb +76 -0
- data/examples/v201103/company_service/create_companies.rb +82 -0
- data/examples/v201103/company_service/get_all_companies.rb +92 -0
- data/examples/v201103/company_service/get_companies_by_statement.rb +88 -0
- data/examples/v201103/company_service/get_company.rb +72 -0
- data/examples/v201103/company_service/update_companies.rb +95 -0
- data/examples/v201103/creative_service/copy_image_creatives.rb +117 -0
- data/examples/v201103/creative_service/create_creatives.rb +109 -0
- data/examples/v201103/creative_service/get_all_creatives.rb +93 -0
- data/examples/v201103/creative_service/get_creative.rb +72 -0
- data/examples/v201103/creative_service/get_creatives_by_statement.rb +87 -0
- data/examples/v201103/creative_service/update_creatives.rb +98 -0
- data/examples/v201103/custom_targeting_service/create_custom_targeting_keys_and_values.rb +118 -0
- data/examples/v201103/custom_targeting_service/delete_custom_targeting_keys.rb +121 -0
- data/examples/v201103/custom_targeting_service/delete_custom_targeting_values.rb +125 -0
- data/examples/v201103/custom_targeting_service/get_all_custom_targeting_keys_and_values.rb +148 -0
- data/examples/v201103/custom_targeting_service/get_custom_targeting_keys_by_statement.rb +92 -0
- data/examples/v201103/custom_targeting_service/get_custom_targeting_values_by_statement.rb +98 -0
- data/examples/v201103/custom_targeting_service/update_custom_targeting_keys.rb +94 -0
- data/examples/v201103/custom_targeting_service/update_custom_targeting_values.rb +106 -0
- data/examples/v201103/forecast_service/get_forecast.rb +103 -0
- data/examples/v201103/forecast_service/get_forecast_by_id.rb +80 -0
- data/examples/v201103/inventory_service/create_ad_units.rb +98 -0
- data/examples/v201103/inventory_service/deactivate_ad_units.rb +119 -0
- data/examples/v201103/inventory_service/get_ad_unit.rb +72 -0
- data/examples/v201103/inventory_service/get_ad_units_by_statement.rb +96 -0
- data/examples/v201103/inventory_service/get_all_ad_units.rb +93 -0
- data/examples/v201103/inventory_service/update_ad_units.rb +94 -0
- data/examples/v201103/line_item_creative_association_service/create_licas.rb +94 -0
- data/examples/v201103/line_item_creative_association_service/deactivate_licas.rb +127 -0
- data/examples/v201103/line_item_creative_association_service/get_all_licas.rb +95 -0
- data/examples/v201103/line_item_creative_association_service/get_lica.rb +77 -0
- data/examples/v201103/line_item_creative_association_service/get_licas_by_statement.rb +91 -0
- data/examples/v201103/line_item_creative_association_service/update_licas.rb +92 -0
- data/examples/v201103/line_item_service/activate_line_items.rb +131 -0
- data/examples/v201103/line_item_service/create_line_items.rb +165 -0
- data/examples/v201103/line_item_service/get_all_line_items.rb +94 -0
- data/examples/v201103/line_item_service/get_line_item.rb +74 -0
- data/examples/v201103/line_item_service/get_line_items_by_statement.rb +89 -0
- data/examples/v201103/line_item_service/target_custom_criteria.rb +135 -0
- data/examples/v201103/line_item_service/update_line_items.rb +110 -0
- data/examples/v201103/network_service/get_all_networks.rb +74 -0
- data/examples/v201103/network_service/get_current_network.rb +66 -0
- data/examples/v201103/order_service/approve_orders.rb +116 -0
- data/examples/v201103/order_service/create_orders.rb +93 -0
- data/examples/v201103/order_service/get_all_orders.rb +93 -0
- data/examples/v201103/order_service/get_order.rb +74 -0
- data/examples/v201103/order_service/get_orders_by_statement.rb +90 -0
- data/examples/v201103/order_service/update_orders.rb +95 -0
- data/examples/v201103/placement_service/create_placements.rb +128 -0
- data/examples/v201103/placement_service/deactivate_placements.rb +118 -0
- data/examples/v201103/placement_service/get_all_placements.rb +93 -0
- data/examples/v201103/placement_service/get_placement.rb +74 -0
- data/examples/v201103/placement_service/get_placements_by_statement.rb +86 -0
- data/examples/v201103/placement_service/update_placements.rb +96 -0
- data/examples/v201103/publisher_query_language_service/get_all_cities.rb +85 -0
- data/examples/v201103/publisher_query_language_service/get_all_countries.rb +85 -0
- data/examples/v201103/publisher_query_language_service/get_all_metros.rb +85 -0
- data/examples/v201103/publisher_query_language_service/get_all_regions.rb +85 -0
- data/examples/v201103/report_service/download_report.rb +81 -0
- data/examples/v201103/report_service/run_delivery_report.rb +89 -0
- data/examples/v201103/report_service/run_inventory_report.rb +90 -0
- data/examples/v201103/report_service/run_sales_report.rb +89 -0
- data/examples/v201103/user_service/create_users.rb +89 -0
- data/examples/v201103/user_service/deactivate_users.rb +99 -0
- data/examples/v201103/user_service/get_all_roles.rb +73 -0
- data/examples/v201103/user_service/get_all_users.rb +92 -0
- data/examples/v201103/user_service/get_user.rb +73 -0
- data/examples/v201103/user_service/get_users_by_statement.rb +79 -0
- data/examples/v201103/user_service/update_users.rb +89 -0
- data/examples/v201104/common/error_handling.rb +76 -0
- data/examples/v201104/company_service/create_companies.rb +82 -0
- data/examples/v201104/company_service/get_all_companies.rb +92 -0
- data/examples/v201104/company_service/get_companies_by_statement.rb +88 -0
- data/examples/v201104/company_service/get_company.rb +72 -0
- data/examples/v201104/company_service/update_companies.rb +95 -0
- data/examples/v201104/creative_service/copy_image_creatives.rb +117 -0
- data/examples/v201104/creative_service/create_creatives.rb +109 -0
- data/examples/v201104/creative_service/get_all_creatives.rb +93 -0
- data/examples/v201104/creative_service/get_creative.rb +72 -0
- data/examples/v201104/creative_service/get_creatives_by_statement.rb +87 -0
- data/examples/v201104/creative_service/update_creatives.rb +98 -0
- data/examples/v201104/custom_targeting_service/create_custom_targeting_keys_and_values.rb +118 -0
- data/examples/v201104/custom_targeting_service/delete_custom_targeting_keys.rb +121 -0
- data/examples/v201104/custom_targeting_service/delete_custom_targeting_values.rb +125 -0
- data/examples/v201104/custom_targeting_service/get_all_custom_targeting_keys_and_values.rb +148 -0
- data/examples/v201104/custom_targeting_service/get_custom_targeting_keys_by_statement.rb +92 -0
- data/examples/v201104/custom_targeting_service/get_custom_targeting_values_by_statement.rb +98 -0
- data/examples/v201104/custom_targeting_service/update_custom_targeting_keys.rb +94 -0
- data/examples/v201104/custom_targeting_service/update_custom_targeting_values.rb +106 -0
- data/examples/v201104/forecast_service/get_forecast.rb +103 -0
- data/examples/v201104/forecast_service/get_forecast_by_id.rb +80 -0
- data/examples/v201104/inventory_service/create_ad_units.rb +98 -0
- data/examples/v201104/inventory_service/deactivate_ad_units.rb +119 -0
- data/examples/v201104/inventory_service/get_ad_unit.rb +72 -0
- data/examples/v201104/inventory_service/get_ad_units_by_statement.rb +96 -0
- data/examples/v201104/inventory_service/get_all_ad_units.rb +93 -0
- data/examples/v201104/inventory_service/update_ad_units.rb +94 -0
- data/examples/v201104/line_item_creative_association_service/create_licas.rb +94 -0
- data/examples/v201104/line_item_creative_association_service/deactivate_licas.rb +127 -0
- data/examples/v201104/line_item_creative_association_service/get_all_licas.rb +95 -0
- data/examples/v201104/line_item_creative_association_service/get_lica.rb +77 -0
- data/examples/v201104/line_item_creative_association_service/get_licas_by_statement.rb +91 -0
- data/examples/v201104/line_item_creative_association_service/update_licas.rb +92 -0
- data/examples/v201104/line_item_service/activate_line_items.rb +131 -0
- data/examples/v201104/line_item_service/create_line_items.rb +157 -0
- data/examples/v201104/line_item_service/get_all_line_items.rb +94 -0
- data/examples/v201104/line_item_service/get_line_item.rb +74 -0
- data/examples/v201104/line_item_service/get_line_items_by_statement.rb +89 -0
- data/examples/v201104/line_item_service/target_custom_criteria.rb +129 -0
- data/examples/v201104/line_item_service/update_line_items.rb +110 -0
- data/examples/v201104/network_service/get_all_networks.rb +74 -0
- data/examples/v201104/network_service/get_current_network.rb +66 -0
- data/examples/v201104/order_service/approve_orders.rb +116 -0
- data/examples/v201104/order_service/create_orders.rb +93 -0
- data/examples/v201104/order_service/get_all_orders.rb +93 -0
- data/examples/v201104/order_service/get_order.rb +74 -0
- data/examples/v201104/order_service/get_orders_by_statement.rb +90 -0
- data/examples/v201104/order_service/update_orders.rb +95 -0
- data/examples/v201104/placement_service/create_placements.rb +128 -0
- data/examples/v201104/placement_service/deactivate_placements.rb +118 -0
- data/examples/v201104/placement_service/get_all_placements.rb +93 -0
- data/examples/v201104/placement_service/get_placement.rb +74 -0
- data/examples/v201104/placement_service/get_placements_by_statement.rb +86 -0
- data/examples/v201104/placement_service/update_placements.rb +96 -0
- data/examples/v201104/publisher_query_language_service/get_all_cities.rb +85 -0
- data/examples/v201104/publisher_query_language_service/get_all_countries.rb +85 -0
- data/examples/v201104/publisher_query_language_service/get_all_metros.rb +85 -0
- data/examples/v201104/publisher_query_language_service/get_all_regions.rb +85 -0
- data/examples/v201104/report_service/download_report.rb +81 -0
- data/examples/v201104/report_service/run_delivery_report.rb +89 -0
- data/examples/v201104/report_service/run_inventory_report.rb +90 -0
- data/examples/v201104/report_service/run_sales_report.rb +89 -0
- data/examples/v201104/user_service/create_users.rb +89 -0
- data/examples/v201104/user_service/deactivate_users.rb +99 -0
- data/examples/v201104/user_service/get_all_roles.rb +73 -0
- data/examples/v201104/user_service/get_all_users.rb +92 -0
- data/examples/v201104/user_service/get_user.rb +73 -0
- data/examples/v201104/user_service/get_users_by_statement.rb +79 -0
- data/examples/v201104/user_service/update_users.rb +89 -0
- data/lib/dfp_api.rb +32 -45
- data/lib/dfp_api/api_config.rb +30 -7
- data/lib/dfp_api/v201101/company_service.rb +9 -9
- data/lib/dfp_api/v201101/company_service_registry.rb +3 -3
- data/lib/dfp_api/v201101/creative_service.rb +9 -9
- data/lib/dfp_api/v201101/creative_service_registry.rb +3 -3
- data/lib/dfp_api/v201101/custom_targeting_service.rb +9 -9
- data/lib/dfp_api/v201101/custom_targeting_service_registry.rb +3 -3
- data/lib/dfp_api/v201101/forecast_service.rb +5 -5
- data/lib/dfp_api/v201101/forecast_service_registry.rb +3 -3
- data/lib/dfp_api/v201101/inventory_service.rb +13 -13
- data/lib/dfp_api/v201101/inventory_service_registry.rb +3 -3
- data/lib/dfp_api/v201101/line_item_creative_association_service.rb +5 -5
- data/lib/dfp_api/v201101/line_item_creative_association_service_registry.rb +3 -3
- data/lib/dfp_api/v201101/line_item_service.rb +13 -13
- data/lib/dfp_api/v201101/line_item_service_registry.rb +3 -3
- data/lib/dfp_api/v201101/network_service.rb +5 -5
- data/lib/dfp_api/v201101/network_service_registry.rb +3 -3
- data/lib/dfp_api/v201101/order_service.rb +13 -13
- data/lib/dfp_api/v201101/order_service_registry.rb +3 -3
- data/lib/dfp_api/v201101/placement_service.rb +9 -9
- data/lib/dfp_api/v201101/placement_service_registry.rb +3 -3
- data/lib/dfp_api/v201101/publisher_query_language_service.rb +1 -1
- data/lib/dfp_api/v201101/publisher_query_language_service_registry.rb +3 -3
- data/lib/dfp_api/v201101/report_service.rb +5 -5
- data/lib/dfp_api/v201101/report_service_registry.rb +3 -3
- data/lib/dfp_api/v201101/user_service.rb +17 -17
- data/lib/dfp_api/v201101/user_service_registry.rb +3 -3
- data/lib/dfp_api/v201103/company_service.rb +52 -0
- data/lib/dfp_api/v201103/company_service_registry.rb +37 -0
- data/lib/dfp_api/v201103/creative_service.rb +52 -0
- data/lib/dfp_api/v201103/creative_service_registry.rb +37 -0
- data/lib/dfp_api/v201103/custom_targeting_service.rb +60 -0
- data/lib/dfp_api/v201103/custom_targeting_service_registry.rb +37 -0
- data/lib/dfp_api/v201103/forecast_service.rb +36 -0
- data/lib/dfp_api/v201103/forecast_service_registry.rb +37 -0
- data/lib/dfp_api/v201103/inventory_service.rb +56 -0
- data/lib/dfp_api/v201103/inventory_service_registry.rb +37 -0
- data/lib/dfp_api/v201103/line_item_creative_association_service.rb +56 -0
- data/lib/dfp_api/v201103/line_item_creative_association_service_registry.rb +37 -0
- data/lib/dfp_api/v201103/line_item_service.rb +56 -0
- data/lib/dfp_api/v201103/line_item_service_registry.rb +37 -0
- data/lib/dfp_api/v201103/network_service.rb +40 -0
- data/lib/dfp_api/v201103/network_service_registry.rb +37 -0
- data/lib/dfp_api/v201103/order_service.rb +56 -0
- data/lib/dfp_api/v201103/order_service_registry.rb +37 -0
- data/lib/dfp_api/v201103/placement_service.rb +56 -0
- data/lib/dfp_api/v201103/placement_service_registry.rb +37 -0
- data/lib/dfp_api/v201103/publisher_query_language_service.rb +32 -0
- data/lib/dfp_api/v201103/publisher_query_language_service_registry.rb +37 -0
- data/lib/dfp_api/v201103/report_service.rb +40 -0
- data/lib/dfp_api/v201103/report_service_registry.rb +37 -0
- data/lib/dfp_api/v201103/user_service.rb +60 -0
- data/lib/dfp_api/v201103/user_service_registry.rb +37 -0
- data/lib/dfp_api/v201104/company_service.rb +52 -0
- data/lib/dfp_api/v201104/company_service_registry.rb +37 -0
- data/lib/dfp_api/v201104/creative_service.rb +52 -0
- data/lib/dfp_api/v201104/creative_service_registry.rb +37 -0
- data/lib/dfp_api/v201104/custom_targeting_service.rb +60 -0
- data/lib/dfp_api/v201104/custom_targeting_service_registry.rb +37 -0
- data/lib/dfp_api/v201104/forecast_service.rb +36 -0
- data/lib/dfp_api/v201104/forecast_service_registry.rb +37 -0
- data/lib/dfp_api/v201104/inventory_service.rb +56 -0
- data/lib/dfp_api/v201104/inventory_service_registry.rb +37 -0
- data/lib/dfp_api/v201104/line_item_creative_association_service.rb +56 -0
- data/lib/dfp_api/v201104/line_item_creative_association_service_registry.rb +37 -0
- data/lib/dfp_api/v201104/line_item_service.rb +56 -0
- data/lib/dfp_api/v201104/line_item_service_registry.rb +37 -0
- data/lib/dfp_api/v201104/network_service.rb +40 -0
- data/lib/dfp_api/v201104/network_service_registry.rb +37 -0
- data/lib/dfp_api/v201104/order_service.rb +56 -0
- data/lib/dfp_api/v201104/order_service_registry.rb +37 -0
- data/lib/dfp_api/v201104/placement_service.rb +56 -0
- data/lib/dfp_api/v201104/placement_service_registry.rb +37 -0
- data/lib/dfp_api/v201104/publisher_query_language_service.rb +32 -0
- data/lib/dfp_api/v201104/publisher_query_language_service_registry.rb +37 -0
- data/lib/dfp_api/v201104/report_service.rb +40 -0
- data/lib/dfp_api/v201104/report_service_registry.rb +37 -0
- data/lib/dfp_api/v201104/user_service.rb +60 -0
- data/lib/dfp_api/v201104/user_service_registry.rb +37 -0
- data/test/bugs/test_issue_00000016.rb +154 -0
- data/test/dfp_api/test_dfp_api.rb +64 -0
- metadata +248 -53
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
#!/usr/bin/ruby
|
|
2
|
+
#
|
|
3
|
+
# Author:: api.dklimkin@gmail.com (Danial Klimkin)
|
|
4
|
+
#
|
|
5
|
+
# Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
|
|
6
|
+
#
|
|
7
|
+
# License:: Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
# you may not use this file except in compliance with the License.
|
|
9
|
+
# You may obtain a copy of the License at
|
|
10
|
+
#
|
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
#
|
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
16
|
+
# implied.
|
|
17
|
+
# See the License for the specific language governing permissions and
|
|
18
|
+
# limitations under the License.
|
|
19
|
+
#
|
|
20
|
+
# This example gets all roles. This example can be used to determine which role
|
|
21
|
+
# ID is needed when getting and creating users.
|
|
22
|
+
#
|
|
23
|
+
# Tags: UserService.getAllRoles
|
|
24
|
+
|
|
25
|
+
require 'rubygems'
|
|
26
|
+
require 'dfp_api'
|
|
27
|
+
|
|
28
|
+
API_VERSION = :v201103
|
|
29
|
+
|
|
30
|
+
def get_all_roles()
|
|
31
|
+
# Get DfpApi instance and load configuration from ~/dfp_api.yml.
|
|
32
|
+
dfp = DfpApi::Api.new
|
|
33
|
+
|
|
34
|
+
# To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
|
|
35
|
+
# the configuration file or provide your own logger:
|
|
36
|
+
# dfp.logger = Logger.new('dfp_xml.log')
|
|
37
|
+
|
|
38
|
+
# Get the UserService.
|
|
39
|
+
user_service = dfp.service(:UserService, API_VERSION)
|
|
40
|
+
|
|
41
|
+
# Get all roles.
|
|
42
|
+
roles = user_service.get_all_roles()
|
|
43
|
+
|
|
44
|
+
if roles
|
|
45
|
+
# Print details about each role in results page.
|
|
46
|
+
roles.each_with_index do |role, index|
|
|
47
|
+
puts "%d) Role ID: %d, name: %s" % [index, role[:id], role[:name]]
|
|
48
|
+
end
|
|
49
|
+
# Print a footer
|
|
50
|
+
puts "Total number of roles: %d" % roles.size
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
if __FILE__ == $0
|
|
55
|
+
begin
|
|
56
|
+
get_all_roles()
|
|
57
|
+
|
|
58
|
+
# HTTP errors.
|
|
59
|
+
rescue AdsCommon::Errors::HttpError => e
|
|
60
|
+
puts "HTTP Error: %s" % e
|
|
61
|
+
|
|
62
|
+
# API errors.
|
|
63
|
+
rescue DfpApi::Errors::ApiException => e
|
|
64
|
+
puts "Message: %s" % e.message
|
|
65
|
+
puts 'Errors:'
|
|
66
|
+
e.errors.each_with_index do |error, index|
|
|
67
|
+
puts "\tError [%d]:" % (index + 1)
|
|
68
|
+
error.each do |field, value|
|
|
69
|
+
puts "\t\t%s: %s" % [field, value]
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
#!/usr/bin/ruby
|
|
2
|
+
#
|
|
3
|
+
# Author:: api.dklimkin@gmail.com (Danial Klimkin)
|
|
4
|
+
#
|
|
5
|
+
# Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
|
|
6
|
+
#
|
|
7
|
+
# License:: Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
# you may not use this file except in compliance with the License.
|
|
9
|
+
# You may obtain a copy of the License at
|
|
10
|
+
#
|
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
#
|
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
16
|
+
# implied.
|
|
17
|
+
# See the License for the specific language governing permissions and
|
|
18
|
+
# limitations under the License.
|
|
19
|
+
#
|
|
20
|
+
# This example gets all users for an account. To create users run create_user.rb
|
|
21
|
+
#
|
|
22
|
+
# Tags: UserService.getUsersByStatement
|
|
23
|
+
|
|
24
|
+
require 'rubygems'
|
|
25
|
+
require 'dfp_api'
|
|
26
|
+
|
|
27
|
+
API_VERSION = :v201103
|
|
28
|
+
PAGE_SIZE = 500
|
|
29
|
+
|
|
30
|
+
def get_all_users()
|
|
31
|
+
# Get DfpApi instance and load configuration from ~/dfp_api.yml.
|
|
32
|
+
dfp = DfpApi::Api.new
|
|
33
|
+
|
|
34
|
+
# To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
|
|
35
|
+
# the configuration file or provide your own logger:
|
|
36
|
+
# dfp.logger = Logger.new('dfp_xml.log')
|
|
37
|
+
|
|
38
|
+
# Get the UserService.
|
|
39
|
+
user_service = dfp.service(:UserService, API_VERSION)
|
|
40
|
+
|
|
41
|
+
# Define initial values.
|
|
42
|
+
offset = 0
|
|
43
|
+
page = Hash.new
|
|
44
|
+
|
|
45
|
+
begin
|
|
46
|
+
# Create statement for one page with current offset.
|
|
47
|
+
statement = {:query => "LIMIT %d OFFSET %d" % [PAGE_SIZE, offset]}
|
|
48
|
+
|
|
49
|
+
# Get users by statement.
|
|
50
|
+
page = user_service.get_users_by_statement(statement)
|
|
51
|
+
|
|
52
|
+
if page[:results]
|
|
53
|
+
# Increase query offset by page size.
|
|
54
|
+
offset += PAGE_SIZE
|
|
55
|
+
|
|
56
|
+
# Get the start index for printout.
|
|
57
|
+
start_index = page[:start_index]
|
|
58
|
+
|
|
59
|
+
# Print details about each user in results page.
|
|
60
|
+
page[:results].each_with_index do |user, index|
|
|
61
|
+
puts "%d) User ID: %d, name: %s, email: %s" %
|
|
62
|
+
[index + start_index, user[:id], user[:name], user[:email]]
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end while offset < page[:total_result_set_size]
|
|
66
|
+
|
|
67
|
+
# Print a footer
|
|
68
|
+
if page.include?(:total_result_set_size)
|
|
69
|
+
puts "Total number of users: %d" % page[:total_result_set_size]
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
if __FILE__ == $0
|
|
74
|
+
begin
|
|
75
|
+
get_all_users()
|
|
76
|
+
|
|
77
|
+
# HTTP errors.
|
|
78
|
+
rescue AdsCommon::Errors::HttpError => e
|
|
79
|
+
puts "HTTP Error: %s" % e
|
|
80
|
+
|
|
81
|
+
# API errors.
|
|
82
|
+
rescue DfpApi::Errors::ApiException => e
|
|
83
|
+
puts "Message: %s" % e.message
|
|
84
|
+
puts 'Errors:'
|
|
85
|
+
e.errors.each_with_index do |error, index|
|
|
86
|
+
puts "\tError [%d]:" % (index + 1)
|
|
87
|
+
error.each do |field, value|
|
|
88
|
+
puts "\t\t%s: %s" % [field, value]
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
#!/usr/bin/ruby
|
|
2
|
+
#
|
|
3
|
+
# Author:: api.dklimkin@gmail.com (Danial Klimkin)
|
|
4
|
+
#
|
|
5
|
+
# Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
|
|
6
|
+
#
|
|
7
|
+
# License:: Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
# you may not use this file except in compliance with the License.
|
|
9
|
+
# You may obtain a copy of the License at
|
|
10
|
+
#
|
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
#
|
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
16
|
+
# implied.
|
|
17
|
+
# See the License for the specific language governing permissions and
|
|
18
|
+
# limitations under the License.
|
|
19
|
+
#
|
|
20
|
+
# This example gets a user by its ID. To create users, run create_users.rb.
|
|
21
|
+
#
|
|
22
|
+
# Tags: UserService.getUser
|
|
23
|
+
|
|
24
|
+
require 'rubygems'
|
|
25
|
+
require 'dfp_api'
|
|
26
|
+
|
|
27
|
+
API_VERSION = :v201103
|
|
28
|
+
|
|
29
|
+
def get_user()
|
|
30
|
+
# Get DfpApi instance and load configuration from ~/dfp_api.yml.
|
|
31
|
+
dfp = DfpApi::Api.new
|
|
32
|
+
|
|
33
|
+
# To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
|
|
34
|
+
# the configuration file or provide your own logger:
|
|
35
|
+
# dfp.logger = Logger.new('dfp_xml.log')
|
|
36
|
+
|
|
37
|
+
# Get the UserService.
|
|
38
|
+
user_service = dfp.service(:UserService, API_VERSION)
|
|
39
|
+
|
|
40
|
+
# Set the ID of the user to get.
|
|
41
|
+
user_id = 'INSERT_USER_ID_HERE'.to_i
|
|
42
|
+
|
|
43
|
+
# Get the user.
|
|
44
|
+
user = user_service.get_user(user_id)
|
|
45
|
+
|
|
46
|
+
if user
|
|
47
|
+
puts "User with ID: %d, name: %s, email: %s and role: %s was found." %
|
|
48
|
+
[user[:id], user[:name], user[:email], user[:role_name]]
|
|
49
|
+
else
|
|
50
|
+
puts 'No user found for this ID.'
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
if __FILE__ == $0
|
|
55
|
+
begin
|
|
56
|
+
get_user()
|
|
57
|
+
|
|
58
|
+
# HTTP errors.
|
|
59
|
+
rescue AdsCommon::Errors::HttpError => e
|
|
60
|
+
puts "HTTP Error: %s" % e
|
|
61
|
+
|
|
62
|
+
# API errors.
|
|
63
|
+
rescue DfpApi::Errors::ApiException => e
|
|
64
|
+
puts "Message: %s" % e.message
|
|
65
|
+
puts 'Errors:'
|
|
66
|
+
e.errors.each_with_index do |error, index|
|
|
67
|
+
puts "\tError [%d]:" % (index + 1)
|
|
68
|
+
error.each do |field, value|
|
|
69
|
+
puts "\t\t%s: %s" % [field, value]
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
#!/usr/bin/ruby
|
|
2
|
+
#
|
|
3
|
+
# Author:: api.dklimkin@gmail.com (Danial Klimkin)
|
|
4
|
+
#
|
|
5
|
+
# Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
|
|
6
|
+
#
|
|
7
|
+
# License:: Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
# you may not use this file except in compliance with the License.
|
|
9
|
+
# You may obtain a copy of the License at
|
|
10
|
+
#
|
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
#
|
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
16
|
+
# implied.
|
|
17
|
+
# See the License for the specific language governing permissions and
|
|
18
|
+
# limitations under the License.
|
|
19
|
+
#
|
|
20
|
+
# This example gets all users sorted by name. The statement retrieves up to the
|
|
21
|
+
# maximum page size limit of 500. To create new users, run create_users.rb.
|
|
22
|
+
#
|
|
23
|
+
# Tags: UserService.getUsersByStatement
|
|
24
|
+
|
|
25
|
+
require 'rubygems'
|
|
26
|
+
require 'dfp_api'
|
|
27
|
+
|
|
28
|
+
API_VERSION = :v201103
|
|
29
|
+
|
|
30
|
+
def get_users_by_statement()
|
|
31
|
+
# Get DfpApi instance and load configuration from ~/dfp_api.yml.
|
|
32
|
+
dfp = DfpApi::Api.new
|
|
33
|
+
|
|
34
|
+
# To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
|
|
35
|
+
# the configuration file or provide your own logger:
|
|
36
|
+
# dfp.logger = Logger.new('dfp_xml.log')
|
|
37
|
+
|
|
38
|
+
# Get the UserService.
|
|
39
|
+
user_service = dfp.service(:UserService, API_VERSION)
|
|
40
|
+
|
|
41
|
+
# Create a statement to get all users sorted by name.
|
|
42
|
+
statement = {:query => 'ORDER BY name LIMIT 500'}
|
|
43
|
+
|
|
44
|
+
# Get users by statement.
|
|
45
|
+
page = user_service.get_users_by_statement(statement)
|
|
46
|
+
|
|
47
|
+
if page and page[:results]
|
|
48
|
+
page[:results].each_with_index do |user, index|
|
|
49
|
+
puts "%d) User ID: %d, name: %s, email: %s, role: %s." % [index,
|
|
50
|
+
user[:id], user[:name], user[:email], user[:role_name]]
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# Print a footer.
|
|
55
|
+
if page.include?(:total_result_set_size)
|
|
56
|
+
puts "Number of results found: %d" % page[:total_result_set_size]
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
if __FILE__ == $0
|
|
61
|
+
begin
|
|
62
|
+
get_users_by_statement()
|
|
63
|
+
|
|
64
|
+
# HTTP errors.
|
|
65
|
+
rescue AdsCommon::Errors::HttpError => e
|
|
66
|
+
puts "HTTP Error: %s" % e
|
|
67
|
+
|
|
68
|
+
# API errors.
|
|
69
|
+
rescue DfpApi::Errors::ApiException => e
|
|
70
|
+
puts "Message: %s" % e.message
|
|
71
|
+
puts 'Errors:'
|
|
72
|
+
e.errors.each_with_index do |error, index|
|
|
73
|
+
puts "\tError [%d]:" % (index + 1)
|
|
74
|
+
error.each do |field, value|
|
|
75
|
+
puts "\t\t%s: %s" % [field, value]
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
#!/usr/bin/ruby
|
|
2
|
+
#
|
|
3
|
+
# Author:: api.dklimkin@gmail.com (Danial Klimkin)
|
|
4
|
+
#
|
|
5
|
+
# Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
|
|
6
|
+
#
|
|
7
|
+
# License:: Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
# you may not use this file except in compliance with the License.
|
|
9
|
+
# You may obtain a copy of the License at
|
|
10
|
+
#
|
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
#
|
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
16
|
+
# implied.
|
|
17
|
+
# See the License for the specific language governing permissions and
|
|
18
|
+
# limitations under the License.
|
|
19
|
+
#
|
|
20
|
+
# This example updates all users by adding "Sr." to the end of each name (after
|
|
21
|
+
# a very large baby boom and lack of creativity). To determine which users
|
|
22
|
+
# exist, run get_all_users.rb.
|
|
23
|
+
#
|
|
24
|
+
# Tags: UserService.updateUsers
|
|
25
|
+
|
|
26
|
+
require 'rubygems'
|
|
27
|
+
require 'dfp_api'
|
|
28
|
+
|
|
29
|
+
API_VERSION = :v201103
|
|
30
|
+
|
|
31
|
+
def update_users()
|
|
32
|
+
# Get DfpApi instance and load configuration from ~/dfp_api.yml.
|
|
33
|
+
dfp = DfpApi::Api.new
|
|
34
|
+
|
|
35
|
+
# To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
|
|
36
|
+
# the configuration file or provide your own logger:
|
|
37
|
+
# dfp.logger = Logger.new('dfp_xml.log')
|
|
38
|
+
|
|
39
|
+
# Get the UserService.
|
|
40
|
+
user_service = dfp.service(:UserService, API_VERSION)
|
|
41
|
+
|
|
42
|
+
# Create a statement to get all users.
|
|
43
|
+
statement = {:query => 'LIMIT 500'}
|
|
44
|
+
|
|
45
|
+
# Get users by statement.
|
|
46
|
+
page = user_service.get_users_by_statement(statement)
|
|
47
|
+
|
|
48
|
+
if page[:results]
|
|
49
|
+
users = page[:results]
|
|
50
|
+
|
|
51
|
+
# Update each local users object by changing its name.
|
|
52
|
+
users.each {|user| user[:name] += ' Sr.'}
|
|
53
|
+
|
|
54
|
+
# Update the users on the server.
|
|
55
|
+
return_users = user_service.update_users(users)
|
|
56
|
+
|
|
57
|
+
if return_users
|
|
58
|
+
return_users.each do |user|
|
|
59
|
+
puts ("User ID: %d, email: %s was updated with name %s") %
|
|
60
|
+
[user[:id], user[:email], user[:name]]
|
|
61
|
+
end
|
|
62
|
+
else
|
|
63
|
+
raise 'No users were updated.'
|
|
64
|
+
end
|
|
65
|
+
else
|
|
66
|
+
puts 'No users found to update.'
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
if __FILE__ == $0
|
|
71
|
+
begin
|
|
72
|
+
update_users()
|
|
73
|
+
|
|
74
|
+
# HTTP errors.
|
|
75
|
+
rescue AdsCommon::Errors::HttpError => e
|
|
76
|
+
puts "HTTP Error: %s" % e
|
|
77
|
+
|
|
78
|
+
# API errors.
|
|
79
|
+
rescue DfpApi::Errors::ApiException => e
|
|
80
|
+
puts "Message: %s" % e.message
|
|
81
|
+
puts 'Errors:'
|
|
82
|
+
e.errors.each_with_index do |error, index|
|
|
83
|
+
puts "\tError [%d]:" % (index + 1)
|
|
84
|
+
error.each do |field, value|
|
|
85
|
+
puts "\t\t%s: %s" % [field, value]
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
#!/usr/bin/ruby
|
|
2
|
+
#
|
|
3
|
+
# Author:: api.dklimkin@gmail.com (Danial Klimkin)
|
|
4
|
+
#
|
|
5
|
+
# Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
|
|
6
|
+
#
|
|
7
|
+
# License:: Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
# you may not use this file except in compliance with the License.
|
|
9
|
+
# You may obtain a copy of the License at
|
|
10
|
+
#
|
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
#
|
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
16
|
+
# implied.
|
|
17
|
+
# See the License for the specific language governing permissions and
|
|
18
|
+
# limitations under the License.
|
|
19
|
+
#
|
|
20
|
+
# This example runs incorrect query and demonstrates how to handle errors.
|
|
21
|
+
#
|
|
22
|
+
# Tags: UserService.updateUser
|
|
23
|
+
|
|
24
|
+
require 'rubygems'
|
|
25
|
+
require 'dfp_api'
|
|
26
|
+
|
|
27
|
+
API_VERSION = :v201104
|
|
28
|
+
|
|
29
|
+
def produce_api_error()
|
|
30
|
+
# Get DfpApi instance and load configuration from ~/dfp_api.yml.
|
|
31
|
+
dfp = DfpApi::Api.new
|
|
32
|
+
|
|
33
|
+
# To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
|
|
34
|
+
# the configuration file or provide your own logger:
|
|
35
|
+
# dfp.logger = Logger.new('dfp_xml.log')
|
|
36
|
+
|
|
37
|
+
# Get the UserService.
|
|
38
|
+
user_service = dfp.service(:UserService, API_VERSION)
|
|
39
|
+
|
|
40
|
+
# Omitting "id" field here to produce an error.
|
|
41
|
+
user = {:preferred_locale => 'en_UK', :name => 'foo_bar'}
|
|
42
|
+
|
|
43
|
+
# Execute request and get the response, this should raise an exception.
|
|
44
|
+
user = user_service.update_user(user)
|
|
45
|
+
|
|
46
|
+
# Output retrieved data.
|
|
47
|
+
puts "User ID: %d, name: %s, email: %s" %
|
|
48
|
+
[user[:id], user[:name], user[:email]]
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
if __FILE__ == $0
|
|
52
|
+
begin
|
|
53
|
+
# This function should produce an exception for demo.
|
|
54
|
+
produce_api_error()
|
|
55
|
+
|
|
56
|
+
# One of two kinds of exception might occur, general HTTP error like 403 or
|
|
57
|
+
# 404 and DFP API error defined in WSDL and described in documentation.
|
|
58
|
+
|
|
59
|
+
# Handling HTTP errors.
|
|
60
|
+
rescue AdsCommon::Errors::HttpError => e
|
|
61
|
+
puts "HTTP Error: %s" % e
|
|
62
|
+
|
|
63
|
+
# Handling API errors.
|
|
64
|
+
rescue DfpApi::Errors::ApiException => e
|
|
65
|
+
# Standard DFP API error includes message and array of errors occured.
|
|
66
|
+
puts "Message: %s" % e.message
|
|
67
|
+
puts 'Errors:'
|
|
68
|
+
# Print out each of the errors.
|
|
69
|
+
e.errors.each_with_index do |error, index|
|
|
70
|
+
puts "\tError [%d]:" % (index + 1)
|
|
71
|
+
error.each do |field, value|
|
|
72
|
+
puts "\t\t%s: %s" % [field, value]
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|