google-dfp-api 0.6.2 → 0.6.3

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.
Files changed (234) hide show
  1. data/ChangeLog +3 -0
  2. data/README +15 -6
  3. data/dfp_api.yml +6 -5
  4. data/examples/v201302/activity_group_service/get_all_activity_groups.rb +0 -0
  5. data/examples/v201302/activity_service/get_all_activities.rb +0 -0
  6. data/examples/v201302/contact_service/get_uninvited_contacts.rb +0 -0
  7. data/examples/v201302/report_service/display_report.rb +0 -0
  8. data/examples/v201302/report_service/run_reach_report.rb +1 -1
  9. data/examples/v201306/activity_group_service/create_activity_groups.rb +94 -0
  10. data/examples/v201306/activity_group_service/get_active_activity_groups.rb +100 -0
  11. data/examples/v201306/activity_group_service/get_all_activity_groups.rb +95 -0
  12. data/examples/v201306/activity_group_service/update_activity_groups.rb +87 -0
  13. data/examples/v201306/activity_service/create_activities.rb +91 -0
  14. data/examples/v201306/activity_service/get_active_activities.rb +107 -0
  15. data/examples/v201306/activity_service/get_all_activities.rb +144 -0
  16. data/examples/v201306/activity_service/update_activities.rb +85 -0
  17. data/examples/v201306/audience_segment_service/get_all_audience_segments.rb +93 -0
  18. data/examples/v201306/common/error_handling.rb +76 -0
  19. data/examples/v201306/common/oauth2_handling.rb +128 -0
  20. data/examples/v201306/common/oauth2_jwt_handling.rb +107 -0
  21. data/examples/v201306/company_service/create_companies.rb +81 -0
  22. data/examples/v201306/company_service/get_all_companies.rb +92 -0
  23. data/examples/v201306/company_service/get_companies_by_statement.rb +88 -0
  24. data/examples/v201306/company_service/get_company.rb +72 -0
  25. data/examples/v201306/company_service/update_companies.rb +102 -0
  26. data/examples/v201306/contact_service/create_contacts.rb +95 -0
  27. data/examples/v201306/contact_service/get_all_contacts.rb +92 -0
  28. data/examples/v201306/contact_service/get_uninvited_contacts.rb +102 -0
  29. data/examples/v201306/contact_service/update_contacts.rb +84 -0
  30. data/examples/v201306/content_service/get_all_content.rb +94 -0
  31. data/examples/v201306/content_service/get_content_by_category.rb +143 -0
  32. data/examples/v201306/creative_service/copy_image_creatives.rb +115 -0
  33. data/examples/v201306/creative_service/create_creative_from_template.rb +139 -0
  34. data/examples/v201306/creative_service/create_creatives.rb +112 -0
  35. data/examples/v201306/creative_service/create_custom_creative.rb +104 -0
  36. data/examples/v201306/creative_service/get_all_creatives.rb +93 -0
  37. data/examples/v201306/creative_service/get_creative.rb +72 -0
  38. data/examples/v201306/creative_service/get_creatives_by_statement.rb +87 -0
  39. data/examples/v201306/creative_service/update_creatives.rb +96 -0
  40. data/examples/v201306/creative_set_service/associate_creative_set_to_line_item.rb +77 -0
  41. data/examples/v201306/creative_set_service/create_creative_set.rb +83 -0
  42. data/examples/v201306/creative_set_service/get_all_creative_sets.rb +94 -0
  43. data/examples/v201306/creative_set_service/get_creative_sets_by_statement.rb +90 -0
  44. data/examples/v201306/creative_set_service/update_creative_sets.rb +85 -0
  45. data/examples/v201306/creative_template_service/get_all_creative_templates.rb +94 -0
  46. data/examples/v201306/creative_template_service/get_creative_template.rb +74 -0
  47. data/examples/v201306/creative_template_service/get_creative_templates_by_statement.rb +80 -0
  48. data/examples/v201306/creative_wrapper_service/create_creative_wrappers.rb +89 -0
  49. data/examples/v201306/creative_wrapper_service/deactivate_creative_wrapper.rb +102 -0
  50. data/examples/v201306/creative_wrapper_service/get_all_creative_wrappers.rb +94 -0
  51. data/examples/v201306/creative_wrapper_service/get_creative_wrappers_by_statement.rb +88 -0
  52. data/examples/v201306/creative_wrapper_service/update_creative_wrappers.rb +86 -0
  53. data/examples/v201306/custom_field_service/create_custom_field_options.rb +87 -0
  54. data/examples/v201306/custom_field_service/create_custom_fields.rb +86 -0
  55. data/examples/v201306/custom_field_service/deactivate_all_line_item_custom_fields.rb +112 -0
  56. data/examples/v201306/custom_field_service/get_all_custom_fields.rb +102 -0
  57. data/examples/v201306/custom_field_service/get_all_line_item_custom_fields.rb +86 -0
  58. data/examples/v201306/custom_field_service/set_line_item_custom_field_value.rb +135 -0
  59. data/examples/v201306/custom_field_service/update_custom_fields.rb +84 -0
  60. data/examples/v201306/custom_targeting_service/create_custom_targeting_keys_and_values.rb +140 -0
  61. data/examples/v201306/custom_targeting_service/delete_custom_targeting_keys.rb +121 -0
  62. data/examples/v201306/custom_targeting_service/delete_custom_targeting_values.rb +125 -0
  63. data/examples/v201306/custom_targeting_service/get_all_custom_targeting_keys_and_values.rb +148 -0
  64. data/examples/v201306/custom_targeting_service/get_custom_targeting_keys_by_statement.rb +92 -0
  65. data/examples/v201306/custom_targeting_service/get_custom_targeting_values_by_statement.rb +98 -0
  66. data/examples/v201306/custom_targeting_service/update_custom_targeting_keys.rb +94 -0
  67. data/examples/v201306/custom_targeting_service/update_custom_targeting_values.rb +106 -0
  68. data/examples/v201306/forecast_service/get_forecast.rb +107 -0
  69. data/examples/v201306/forecast_service/get_forecast_by_id.rb +80 -0
  70. data/examples/v201306/inventory_service/create_ad_units.rb +101 -0
  71. data/examples/v201306/inventory_service/create_mobile_ad_unit.rb +101 -0
  72. data/examples/v201306/inventory_service/create_video_ad_unit.rb +108 -0
  73. data/examples/v201306/inventory_service/deactivate_ad_units.rb +119 -0
  74. data/examples/v201306/inventory_service/get_ad_unit.rb +72 -0
  75. data/examples/v201306/inventory_service/get_ad_unit_sizes.rb +85 -0
  76. data/examples/v201306/inventory_service/get_ad_units_by_statement.rb +96 -0
  77. data/examples/v201306/inventory_service/get_all_ad_units.rb +93 -0
  78. data/examples/v201306/inventory_service/update_ad_units.rb +96 -0
  79. data/examples/v201306/label_service/create_labels.rb +83 -0
  80. data/examples/v201306/label_service/deactivate_labels.rb +118 -0
  81. data/examples/v201306/label_service/get_all_labels.rb +95 -0
  82. data/examples/v201306/label_service/get_label.rb +76 -0
  83. data/examples/v201306/label_service/get_labels_by_statement.rb +81 -0
  84. data/examples/v201306/label_service/update_labels.rb +102 -0
  85. data/examples/v201306/line_item_creative_association_service/create_licas.rb +94 -0
  86. data/examples/v201306/line_item_creative_association_service/deactivate_licas.rb +127 -0
  87. data/examples/v201306/line_item_creative_association_service/get_all_licas.rb +98 -0
  88. data/examples/v201306/line_item_creative_association_service/get_lica.rb +77 -0
  89. data/examples/v201306/line_item_creative_association_service/get_licas_by_statement.rb +91 -0
  90. data/examples/v201306/line_item_creative_association_service/update_licas.rb +91 -0
  91. data/examples/v201306/line_item_service/activate_line_items.rb +131 -0
  92. data/examples/v201306/line_item_service/create_line_items.rb +177 -0
  93. data/examples/v201306/line_item_service/create_mobile_line_item.rb +135 -0
  94. data/examples/v201306/line_item_service/create_video_line_item.rb +158 -0
  95. data/examples/v201306/line_item_service/get_all_line_items.rb +94 -0
  96. data/examples/v201306/line_item_service/get_line_item.rb +74 -0
  97. data/examples/v201306/line_item_service/get_line_items_by_statement.rb +93 -0
  98. data/examples/v201306/line_item_service/get_recently_updated_line_items.rb +98 -0
  99. data/examples/v201306/line_item_service/target_custom_criteria.rb +129 -0
  100. data/examples/v201306/line_item_service/update_line_items.rb +109 -0
  101. data/examples/v201306/network_service/get_all_networks.rb +74 -0
  102. data/examples/v201306/network_service/get_current_network.rb +66 -0
  103. data/examples/v201306/network_service/make_test_network.rb +79 -0
  104. data/examples/v201306/order_service/approve_orders.rb +122 -0
  105. data/examples/v201306/order_service/create_orders.rb +92 -0
  106. data/examples/v201306/order_service/get_all_orders.rb +93 -0
  107. data/examples/v201306/order_service/get_order.rb +74 -0
  108. data/examples/v201306/order_service/get_orders_by_statement.rb +90 -0
  109. data/examples/v201306/order_service/update_orders.rb +97 -0
  110. data/examples/v201306/placement_service/create_placements.rb +131 -0
  111. data/examples/v201306/placement_service/deactivate_placements.rb +118 -0
  112. data/examples/v201306/placement_service/get_all_placements.rb +93 -0
  113. data/examples/v201306/placement_service/get_placement.rb +74 -0
  114. data/examples/v201306/placement_service/get_placements_by_statement.rb +86 -0
  115. data/examples/v201306/placement_service/update_placements.rb +97 -0
  116. data/examples/v201306/publisher_query_language_service/get_all_cities.rb +104 -0
  117. data/examples/v201306/report_service/display_report.rb +81 -0
  118. data/examples/v201306/report_service/download_report.rb +81 -0
  119. data/examples/v201306/report_service/run_delivery_report.rb +103 -0
  120. data/examples/v201306/report_service/run_inventory_report.rb +96 -0
  121. data/examples/v201306/report_service/run_merged_delivery_report.rb +94 -0
  122. data/examples/v201306/report_service/run_reach_report.rb +87 -0
  123. data/examples/v201306/report_service/run_report_with_custom_fields.rb +135 -0
  124. data/examples/v201306/report_service/run_sales_report.rb +92 -0
  125. data/examples/v201306/suggested_ad_unit_service/approve_all_suggested_ad_units.rb +109 -0
  126. data/examples/v201306/suggested_ad_unit_service/get_all_suggested_ad_units.rb +96 -0
  127. data/examples/v201306/suggested_ad_unit_service/get_suggested_ad_unit.rb +75 -0
  128. data/examples/v201306/suggested_ad_unit_service/get_suggested_ad_units_by_statement.rb +92 -0
  129. data/examples/v201306/team_service/create_teams.rb +83 -0
  130. data/examples/v201306/team_service/get_all_teams.rb +92 -0
  131. data/examples/v201306/team_service/get_team.rb +74 -0
  132. data/examples/v201306/team_service/get_teams_by_statement.rb +78 -0
  133. data/examples/v201306/team_service/update_teams.rb +97 -0
  134. data/examples/v201306/user_service/create_users.rb +89 -0
  135. data/examples/v201306/user_service/deactivate_users.rb +97 -0
  136. data/examples/v201306/user_service/get_all_roles.rb +73 -0
  137. data/examples/v201306/user_service/get_all_users.rb +93 -0
  138. data/examples/v201306/user_service/get_current_user.rb +66 -0
  139. data/examples/v201306/user_service/get_user.rb +73 -0
  140. data/examples/v201306/user_service/get_users_by_statement.rb +79 -0
  141. data/examples/v201306/user_service/update_users.rb +89 -0
  142. data/examples/v201306/user_team_association_service/create_user_team_associations.rb +86 -0
  143. data/examples/v201306/user_team_association_service/delete_user_team_associations.rb +111 -0
  144. data/examples/v201306/user_team_association_service/get_all_user_team_associations.rb +94 -0
  145. data/examples/v201306/user_team_association_service/get_user_team_association.rb +76 -0
  146. data/examples/v201306/user_team_association_service/get_user_team_associations_by_statement.rb +94 -0
  147. data/examples/v201306/user_team_association_service/update_user_team_associations.rb +102 -0
  148. data/lib/dfp_api.rb +3 -3
  149. data/lib/dfp_api/api_config.rb +24 -4
  150. data/lib/dfp_api/v201306/activity_group_service.rb +54 -0
  151. data/lib/dfp_api/v201306/activity_group_service_registry.rb +46 -0
  152. data/lib/dfp_api/v201306/activity_service.rb +54 -0
  153. data/lib/dfp_api/v201306/activity_service_registry.rb +46 -0
  154. data/lib/dfp_api/v201306/ad_rule_service.rb +58 -0
  155. data/lib/dfp_api/v201306/ad_rule_service_registry.rb +46 -0
  156. data/lib/dfp_api/v201306/audience_segment_service.rb +34 -0
  157. data/lib/dfp_api/v201306/audience_segment_service_registry.rb +46 -0
  158. data/lib/dfp_api/v201306/base_rate_service.rb +58 -0
  159. data/lib/dfp_api/v201306/base_rate_service_registry.rb +46 -0
  160. data/lib/dfp_api/v201306/company_service.rb +54 -0
  161. data/lib/dfp_api/v201306/company_service_registry.rb +46 -0
  162. data/lib/dfp_api/v201306/contact_service.rb +54 -0
  163. data/lib/dfp_api/v201306/contact_service_registry.rb +46 -0
  164. data/lib/dfp_api/v201306/content_bundle_service.rb +58 -0
  165. data/lib/dfp_api/v201306/content_bundle_service_registry.rb +46 -0
  166. data/lib/dfp_api/v201306/content_service.rb +38 -0
  167. data/lib/dfp_api/v201306/content_service_registry.rb +46 -0
  168. data/lib/dfp_api/v201306/creative_service.rb +54 -0
  169. data/lib/dfp_api/v201306/creative_service_registry.rb +46 -0
  170. data/lib/dfp_api/v201306/creative_set_service.rb +46 -0
  171. data/lib/dfp_api/v201306/creative_set_service_registry.rb +46 -0
  172. data/lib/dfp_api/v201306/creative_template_service.rb +38 -0
  173. data/lib/dfp_api/v201306/creative_template_service_registry.rb +46 -0
  174. data/lib/dfp_api/v201306/creative_wrapper_service.rb +58 -0
  175. data/lib/dfp_api/v201306/creative_wrapper_service_registry.rb +46 -0
  176. data/lib/dfp_api/v201306/custom_field_service.rb +78 -0
  177. data/lib/dfp_api/v201306/custom_field_service_registry.rb +46 -0
  178. data/lib/dfp_api/v201306/custom_targeting_service.rb +62 -0
  179. data/lib/dfp_api/v201306/custom_targeting_service_registry.rb +46 -0
  180. data/lib/dfp_api/v201306/forecast_service.rb +38 -0
  181. data/lib/dfp_api/v201306/forecast_service_registry.rb +46 -0
  182. data/lib/dfp_api/v201306/inventory_service.rb +62 -0
  183. data/lib/dfp_api/v201306/inventory_service_registry.rb +46 -0
  184. data/lib/dfp_api/v201306/label_service.rb +58 -0
  185. data/lib/dfp_api/v201306/label_service_registry.rb +46 -0
  186. data/lib/dfp_api/v201306/line_item_creative_association_service.rb +62 -0
  187. data/lib/dfp_api/v201306/line_item_creative_association_service_registry.rb +46 -0
  188. data/lib/dfp_api/v201306/line_item_service.rb +58 -0
  189. data/lib/dfp_api/v201306/line_item_service_registry.rb +46 -0
  190. data/lib/dfp_api/v201306/line_item_template_service.rb +34 -0
  191. data/lib/dfp_api/v201306/line_item_template_service_registry.rb +46 -0
  192. data/lib/dfp_api/v201306/network_service.rb +46 -0
  193. data/lib/dfp_api/v201306/network_service_registry.rb +46 -0
  194. data/lib/dfp_api/v201306/order_service.rb +58 -0
  195. data/lib/dfp_api/v201306/order_service_registry.rb +46 -0
  196. data/lib/dfp_api/v201306/placement_service.rb +58 -0
  197. data/lib/dfp_api/v201306/placement_service_registry.rb +46 -0
  198. data/lib/dfp_api/v201306/product_service.rb +50 -0
  199. data/lib/dfp_api/v201306/product_service_registry.rb +46 -0
  200. data/lib/dfp_api/v201306/product_template_service.rb +58 -0
  201. data/lib/dfp_api/v201306/product_template_service_registry.rb +46 -0
  202. data/lib/dfp_api/v201306/proposal_line_item_service.rb +58 -0
  203. data/lib/dfp_api/v201306/proposal_line_item_service_registry.rb +46 -0
  204. data/lib/dfp_api/v201306/proposal_service.rb +58 -0
  205. data/lib/dfp_api/v201306/proposal_service_registry.rb +46 -0
  206. data/lib/dfp_api/v201306/publisher_query_language_service.rb +34 -0
  207. data/lib/dfp_api/v201306/publisher_query_language_service_registry.rb +46 -0
  208. data/lib/dfp_api/v201306/rate_card_customization_service.rb +58 -0
  209. data/lib/dfp_api/v201306/rate_card_customization_service_registry.rb +46 -0
  210. data/lib/dfp_api/v201306/rate_card_service.rb +58 -0
  211. data/lib/dfp_api/v201306/rate_card_service_registry.rb +46 -0
  212. data/lib/dfp_api/v201306/reconciliation_order_report_service.rb +42 -0
  213. data/lib/dfp_api/v201306/reconciliation_order_report_service_registry.rb +46 -0
  214. data/lib/dfp_api/v201306/reconciliation_report_row_service.rb +38 -0
  215. data/lib/dfp_api/v201306/reconciliation_report_row_service_registry.rb +46 -0
  216. data/lib/dfp_api/v201306/reconciliation_report_service.rb +46 -0
  217. data/lib/dfp_api/v201306/reconciliation_report_service_registry.rb +46 -0
  218. data/lib/dfp_api/v201306/report_service.rb +46 -0
  219. data/lib/dfp_api/v201306/report_service_registry.rb +46 -0
  220. data/lib/dfp_api/v201306/suggested_ad_unit_service.rb +42 -0
  221. data/lib/dfp_api/v201306/suggested_ad_unit_service_registry.rb +46 -0
  222. data/lib/dfp_api/v201306/team_service.rb +54 -0
  223. data/lib/dfp_api/v201306/team_service_registry.rb +46 -0
  224. data/lib/dfp_api/v201306/user_service.rb +66 -0
  225. data/lib/dfp_api/v201306/user_service_registry.rb +46 -0
  226. data/lib/dfp_api/v201306/user_team_association_service.rb +58 -0
  227. data/lib/dfp_api/v201306/user_team_association_service_registry.rb +46 -0
  228. data/lib/dfp_api/v201306/workflow_action_service.rb +38 -0
  229. data/lib/dfp_api/v201306/workflow_action_service_registry.rb +46 -0
  230. data/lib/dfp_api/version.rb +1 -1
  231. data/test/bugs/test_issue_00000016.rb +3 -3
  232. data/test/dfp_api/test_dfp_api.rb +30 -6
  233. data/test/suite_unittests.rb +6 -6
  234. metadata +1218 -999
@@ -0,0 +1,76 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
7
+ #
8
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17
+ # implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+ #
21
+ # This example runs incorrect query and demonstrates how to handle errors.
22
+ #
23
+ # Tags: UserService.updateUser
24
+
25
+ require 'dfp_api'
26
+
27
+ API_VERSION = :v201306
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
@@ -0,0 +1,128 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2012, Google Inc. All Rights Reserved.
7
+ #
8
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17
+ # implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+ #
21
+ # This example shows how to use OAuth2.0 authorization method. It is designed to
22
+ # be run from console and requires user input.
23
+ #
24
+ # Tags: UserService.getUsersByStatement
25
+
26
+ require 'dfp_api'
27
+
28
+ API_VERSION = :v201306
29
+ PAGE_SIZE = 500
30
+ MAX_RETRIES = 3
31
+
32
+ def oauth2_handling()
33
+ # Get DfpApi instance and load configuration from ~/dfp_api.yml.
34
+ dfp = DfpApi::Api.new
35
+
36
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
37
+ # the configuration file or provide your own logger:
38
+ # dfp.logger = Logger.new('dfp_xml.log')
39
+
40
+ # Forcing authorization. A callback URL and other parameters could be
41
+ # specified as parameter for OAuth method.
42
+ token = dfp.authorize({:oauth_callback => 'oob'}) do |oauth_url|
43
+ # For command-line we ask user to go to URL and type in code.
44
+ verification_code = get_verification_code(oauth_url)
45
+ # Return verification code from the block.
46
+ (verification_code.empty?) ? nil : verification_code
47
+ end
48
+
49
+ # Get the UserService.
50
+ user_service = dfp.service(:UserService, API_VERSION)
51
+
52
+ # Define initial values.
53
+ offset = 0
54
+ page = Hash.new
55
+ retry_count = 0
56
+
57
+ begin
58
+ # Create statement for one page with current offset.
59
+ statement = {:query => "LIMIT %d OFFSET %d" % [PAGE_SIZE, offset]}
60
+
61
+ begin
62
+ # Get users by statement.
63
+ page = user_service.get_users_by_statement(statement)
64
+
65
+ # The second way to do OAuth authentication is to make a request and catch
66
+ # the OAuthVerificationRequired exception. Add the verification code to the
67
+ # credentials once acquired.
68
+ rescue AdsCommon::Errors::OAuth2VerificationRequired => e
69
+ if retry_count < MAX_RETRIES
70
+ verification_code = get_verification_code(e.oauth_url)
71
+ dfp.credential_handler.set_credential(
72
+ :oauth2_verification_code, verification_code)
73
+ retry_count += 1
74
+ retry
75
+ else
76
+ raise AdsCommon::Errors::AuthError, 'Failed to authenticate.'
77
+ end
78
+ end
79
+
80
+ if page[:results]
81
+ # Increase query offset by page size.
82
+ offset += PAGE_SIZE
83
+
84
+ # Get the start index for printout.
85
+ start_index = page[:start_index]
86
+
87
+ # Print details about each user in results page.
88
+ page[:results].each_with_index do |user, index|
89
+ puts "%d) User ID: %d, name: %s, email: %s" %
90
+ [index + start_index, user[:id], user[:name], user[:email]]
91
+ end
92
+ end
93
+ end while offset < page[:total_result_set_size]
94
+
95
+ # Print a footer
96
+ if page.include?(:total_result_set_size)
97
+ puts "Total number of users: %d" % page[:total_result_set_size]
98
+ end
99
+ end
100
+
101
+ # Misc util to get the verification code from the console.
102
+ def get_verification_code(url)
103
+ puts "Hit Auth error, please navigate to URL:\n\t%s" % url
104
+ print 'Log in and type the verification code: '
105
+ verification_code = gets.chomp
106
+ return verification_code
107
+ end
108
+
109
+ if __FILE__ == $0
110
+ begin
111
+ oauth2_handling()
112
+
113
+ # HTTP errors.
114
+ rescue AdsCommon::Errors::HttpError => e
115
+ puts "HTTP Error: %s" % e
116
+
117
+ # API errors.
118
+ rescue DfpApi::Errors::ApiException => e
119
+ puts "Message: %s" % e.message
120
+ puts 'Errors:'
121
+ e.errors.each_with_index do |error, index|
122
+ puts "\tError [%d]:" % (index + 1)
123
+ error.each do |field, value|
124
+ puts "\t\t%s: %s" % [field, value]
125
+ end
126
+ end
127
+ end
128
+ end
@@ -0,0 +1,107 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2012, Google Inc. All Rights Reserved.
7
+ #
8
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17
+ # implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+ #
21
+ # This example shows how to use OAuth2.0 authorization method with JWT (Service
22
+ # Account).
23
+ #
24
+ # Tags: UserService.getUsersByStatement
25
+
26
+ require 'dfp_api'
27
+
28
+ API_VERSION = :v201306
29
+ PAGE_SIZE = 500
30
+
31
+ def oauth2_jwt_handling()
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
+ # Option 1: provide key filename as authentication -> oauth2_keyfile in the
40
+ # configuration file. No additional code is necessary.
41
+ # To provide a file name at runtime, use authorize:
42
+ # dfp.authorize({:oauth2_keyfile => key_filename})
43
+
44
+ # Option 2: retrieve key manually and create OpenSSL::PKCS12 object.
45
+ # key_filename = 'INSERT_FILENAME_HERE'
46
+ # key_secret = 'INSERT_SECRET_HERE'
47
+ # key_file_data = File.read(key_filename)
48
+ # key = OpenSSL::PKCS12.new(key_file_data, key_secret).key
49
+ # dfp.authorize({:oauth2_key => key})
50
+
51
+ # Now you can make API calls.
52
+
53
+ # Get the UserService.
54
+ user_service = dfp.service(:UserService, API_VERSION)
55
+
56
+ # Define initial values.
57
+ offset = 0
58
+ page = Hash.new
59
+
60
+ begin
61
+ # Create statement for one page with current offset.
62
+ statement = {:query => "LIMIT %d OFFSET %d" % [PAGE_SIZE, offset]}
63
+
64
+ # Get users by statement.
65
+ page = user_service.get_users_by_statement(statement)
66
+
67
+ if page[:results]
68
+ # Increase query offset by page size.
69
+ offset += PAGE_SIZE
70
+
71
+ # Get the start index for printout.
72
+ start_index = page[:start_index]
73
+
74
+ # Print details about each user in results page.
75
+ page[:results].each_with_index do |user, index|
76
+ puts "%d) User ID: %d, name: %s, email: %s" %
77
+ [index + start_index, user[:id], user[:name], user[:email]]
78
+ end
79
+ end
80
+ end while offset < page[:total_result_set_size]
81
+
82
+ # Print a footer
83
+ if page.include?(:total_result_set_size)
84
+ puts "Total number of users: %d" % page[:total_result_set_size]
85
+ end
86
+ end
87
+
88
+ if __FILE__ == $0
89
+ begin
90
+ oauth2_jwt_handling()
91
+
92
+ # HTTP errors.
93
+ rescue AdsCommon::Errors::HttpError => e
94
+ puts "HTTP Error: %s" % e
95
+
96
+ # API errors.
97
+ rescue DfpApi::Errors::ApiException => e
98
+ puts "Message: %s" % e.message
99
+ puts 'Errors:'
100
+ e.errors.each_with_index do |error, index|
101
+ puts "\tError [%d]:" % (index + 1)
102
+ error.each do |field, value|
103
+ puts "\t\t%s: %s" % [field, value]
104
+ end
105
+ end
106
+ end
107
+ end
@@ -0,0 +1,81 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
7
+ #
8
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17
+ # implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+ #
21
+ # This example creates new companies. To determine which companies exist, run
22
+ # get_all_companies.rb.
23
+ #
24
+ # Tags: CompanyService.createCompanies
25
+
26
+ require 'dfp_api'
27
+
28
+ API_VERSION = :v201306
29
+ # Number of companies to create.
30
+ ITEM_COUNT = 5
31
+
32
+ def create_companies()
33
+ # Get DfpApi instance and load configuration from ~/dfp_api.yml.
34
+ dfp = DfpApi::Api.new
35
+
36
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
37
+ # the configuration file or provide your own logger:
38
+ # dfp.logger = Logger.new('dfp_xml.log')
39
+
40
+ # Get the CompanyService.
41
+ company_service = dfp.service(:CompanyService, API_VERSION)
42
+
43
+ # Create an array to store local company objects.
44
+ companies = (1..ITEM_COUNT).map do |index|
45
+ {:name => "Advertiser #%d" % index, :type => 'ADVERTISER'}
46
+ end
47
+
48
+ # Create the companies on the server.
49
+ return_companies = company_service.create_companies(companies)
50
+
51
+ if return_companies
52
+ return_companies.each do |company|
53
+ puts "Company with ID: %d, name: %s and type: %s was created." %
54
+ [company[:id], company[:name], company[:type]]
55
+ end
56
+ else
57
+ raise 'No companies were created.'
58
+ end
59
+
60
+ end
61
+
62
+ if __FILE__ == $0
63
+ begin
64
+ create_companies()
65
+
66
+ # HTTP errors.
67
+ rescue AdsCommon::Errors::HttpError => e
68
+ puts "HTTP Error: %s" % e
69
+
70
+ # API errors.
71
+ rescue DfpApi::Errors::ApiException => e
72
+ puts "Message: %s" % e.message
73
+ puts 'Errors:'
74
+ e.errors.each_with_index do |error, index|
75
+ puts "\tError [%d]:" % (index + 1)
76
+ error.each do |field, value|
77
+ puts "\t\t%s: %s" % [field, value]
78
+ end
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,92 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
7
+ #
8
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17
+ # implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+ #
21
+ # This example gets all companies. To create companies, run create_companies.rb.
22
+ #
23
+ # Tags: CompanyService.getCompaniesByStatement
24
+
25
+ require 'dfp_api'
26
+
27
+ API_VERSION = :v201306
28
+ PAGE_SIZE = 500
29
+
30
+ def get_all_companies()
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 CompanyService.
39
+ company_service = dfp.service(:CompanyService, API_VERSION)
40
+
41
+ # Define initial values.
42
+ offset = 0
43
+ page = {}
44
+
45
+ begin
46
+ # Create a statement to get one page with current offset.
47
+ statement = {:query => "LIMIT %d OFFSET %d" % [PAGE_SIZE, offset]}
48
+
49
+ # Get companies by statement.
50
+ page = company_service.get_companies_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 company in results.
60
+ page[:results].each_with_index do |company, index|
61
+ puts "%d) Company ID: %d, name: '%s', type: '%s'" %
62
+ [index + start_index, company[:id], company[:name], company[:type]]
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 companies: %d" % page[:total_result_set_size]
70
+ end
71
+ end
72
+
73
+ if __FILE__ == $0
74
+ begin
75
+ get_all_companies()
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