facebook_ads 0.1.5 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/.rubocop.yml +23 -0
- data/.travis.yml +1 -1
- data/Gemfile +4 -5
- data/Gemfile.lock +34 -82
- data/{README.markdown → README.md} +43 -10
- data/Rakefile +6 -0
- data/bin/console +15 -1
- data/facebook_ads.gemspec +11 -13
- data/lib/facebook_ads.rb +11 -7
- data/lib/facebook_ads/ad.rb +6 -8
- data/lib/facebook_ads/ad_account.rb +65 -54
- data/lib/facebook_ads/ad_audience.rb +22 -0
- data/lib/facebook_ads/ad_campaign.rb +21 -17
- data/lib/facebook_ads/ad_creative.rb +7 -9
- data/lib/facebook_ads/ad_image.rb +3 -5
- data/lib/facebook_ads/ad_insight.rb +4 -5
- data/lib/facebook_ads/ad_product.rb +6 -0
- data/lib/facebook_ads/ad_product_catalog.rb +60 -0
- data/lib/facebook_ads/ad_product_feed.rb +6 -0
- data/lib/facebook_ads/ad_product_set.rb +6 -0
- data/lib/facebook_ads/ad_set.rb +9 -11
- data/lib/facebook_ads/ad_targeting.rb +19 -21
- data/lib/facebook_ads/base.rb +107 -62
- data/test/ad_account_test.rb +27 -0
- data/test/ad_campaign_test.rb +32 -0
- data/test/ad_creative_test.rb +7 -0
- data/test/ad_image_test.rb +27 -0
- data/test/ad_insight_test.rb +7 -0
- data/test/ad_product_catalog_test.rb +28 -0
- data/test/ad_product_feed_test.rb +7 -0
- data/test/ad_product_set_test.rb +7 -0
- data/test/ad_product_test.rb +22 -0
- data/test/ad_set_test.rb +7 -0
- data/test/ad_targeting_test.rb +7 -0
- data/test/ad_test.rb +7 -0
- data/test/facebook_ads_test.rb +8 -0
- data/test/test_helper.rb +64 -0
- data/test/vcr_cassettes/AdAccountTest-test_all.yml +70 -0
- data/test/vcr_cassettes/AdAccountTest-test_applications.yml +130 -0
- data/test/vcr_cassettes/AdAccountTest-test_find_by.yml +71 -0
- data/test/vcr_cassettes/AdCampaignTest-test_create.yml +295 -0
- data/test/vcr_cassettes/AdCampaignTest-test_list.yml +133 -0
- data/test/vcr_cassettes/AdImageTest-test_create.yml +2963 -0
- data/test/vcr_cassettes/AdImageTest-test_list.yml +137 -0
- data/test/vcr_cassettes/AdProductCatalogTest-test_all.yml +60 -0
- data/test/vcr_cassettes/AdProductCatalogTest-test_create.yml +256 -0
- data/test/vcr_cassettes/AdProductTest-test_list.yml +130 -0
- metadata +44 -49
- data/spec/ad_account_spec.rb +0 -78
- data/spec/ad_campaign_spec.rb +0 -13
- data/spec/ad_creative_spec.rb +0 -14
- data/spec/ad_image_spec.rb +0 -11
- data/spec/ad_insight_spec.rb +0 -11
- data/spec/ad_set_spec.rb +0 -13
- data/spec/ad_spec.rb +0 -13
- data/spec/ad_targeting_spec.rb +0 -4
- data/spec/spec_helper.rb +0 -15
- data/spec/support/fixtures.sh +0 -17
- data/spec/support/fixtures/6057330925170.json +0 -1
- data/spec/support/fixtures/6057810634370.json +0 -1
- data/spec/support/fixtures/6057810946970.json +0 -1
- data/spec/support/fixtures/6057824295570.json +0 -1
- data/spec/support/fixtures/act_861827983860489.json +0 -1
- data/spec/support/fixtures/act_861827983860489/adcreatives.json +0 -1
- data/spec/support/fixtures/act_861827983860489/adimages.json +0 -1
- data/spec/support/fixtures/act_861827983860489/ads.json +0 -1
- data/spec/support/fixtures/act_861827983860489/adsets.json +0 -1
- data/spec/support/fixtures/act_861827983860489/campaigns.json +0 -1
- data/spec/support/fixtures/me/adaccounts.json +0 -1
- data/spec/support/rack_facebook.rb +0 -22
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
# rake test TEST=test/ad_account_test.rb
|
4
|
+
class AdAccountTest < BaseTest
|
5
|
+
def test_all
|
6
|
+
vcr do
|
7
|
+
accounts = FacebookAds::AdAccount.all
|
8
|
+
assert_equal 10, accounts.length
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_find_by
|
13
|
+
vcr do
|
14
|
+
account = FacebookAds::AdAccount.find_by(name: 'ReFuel4')
|
15
|
+
assert_equal 'ReFuel4', account.name
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_applications
|
20
|
+
vcr do
|
21
|
+
account = FacebookAds::AdAccount.find_by(name: 'ReFuel4')
|
22
|
+
apps = account.applications
|
23
|
+
assert !apps['data'].find { |app| app['name'] == 'Tophatter' }.nil?
|
24
|
+
assert !apps['data'].find { |app| app['name'] == 'Ruby - Jewelry Shopping Deals' }.nil?
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
# rake test TEST=test/ad_campaign_test.rb
|
4
|
+
class AdCampaignTest < BaseTest
|
5
|
+
def test_list
|
6
|
+
vcr do
|
7
|
+
account = FacebookAds::AdAccount.find_by(name: 'Ruby')
|
8
|
+
ad_campaigns = account.ad_campaigns
|
9
|
+
ad_campaign = ad_campaigns.first
|
10
|
+
assert_equal '23842540417890562', ad_campaign.id
|
11
|
+
assert_equal '1115226431853975', ad_campaign.account_id
|
12
|
+
assert_equal 'AUCTION', ad_campaign.buying_type
|
13
|
+
assert_equal true, ad_campaign.can_use_spend_cap
|
14
|
+
assert_equal 'ACTIVE', ad_campaign.configured_status
|
15
|
+
assert_equal 'ACTIVE', ad_campaign.effective_status
|
16
|
+
assert_equal 'iOS App installs', ad_campaign.name
|
17
|
+
assert_equal 'MOBILE_APP_INSTALLS', ad_campaign.objective
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_create
|
22
|
+
vcr do
|
23
|
+
account = FacebookAds::AdAccount.find_by(name: 'ReFuel4')
|
24
|
+
ad_campaign = account.create_ad_campaign(name: 'Test', objective: 'MOBILE_APP_INSTALLS')
|
25
|
+
assert_equal 'Test', ad_campaign.name
|
26
|
+
assert_equal 'MOBILE_APP_INSTALLS', ad_campaign.objective
|
27
|
+
assert_equal true, ad_campaign.destroy
|
28
|
+
ad_campaign = FacebookAds::AdCampaign.find(ad_campaign.id)
|
29
|
+
assert_equal 'DELETED', ad_campaign.effective_status
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
# rake test TEST=test/ad_image_test.rb
|
4
|
+
class AdImageTest < BaseTest
|
5
|
+
def test_list
|
6
|
+
vcr do
|
7
|
+
account = FacebookAds::AdAccount.find_by(name: 'ReFuel4')
|
8
|
+
ad_images = account.ad_images(hashes: %w(a9e27630331b8ca2ebac1bb8619c98eb 037b8f4f2383f45f35b110cf72c46f0b))
|
9
|
+
assert_equal 2, ad_images.length
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_create
|
14
|
+
vcr do
|
15
|
+
account = FacebookAds::AdAccount.find_by(name: 'ReFuel4')
|
16
|
+
ad_images = account.create_ad_images(['https://img0.etsystatic.com/108/1/13006112/il_570xN.1047856494_l2gp.jpg'])
|
17
|
+
ad_image = ad_images.first
|
18
|
+
assert_equal '1132789356764349:287ecd37223004c301f5df4e4d02bbe2', ad_image.id
|
19
|
+
assert_equal '287ecd37223004c301f5df4e4d02bbe2', ad_image.hash
|
20
|
+
assert_equal '1132789356764349', ad_image.account_id
|
21
|
+
assert_equal '13006112.jpg', ad_image.name
|
22
|
+
assert ad_image.permalink_url.include?('https://www.facebook.com/ads/image/?d=')
|
23
|
+
assert_equal 570, ad_image.original_width
|
24
|
+
assert_equal 707, ad_image.original_height
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
# rake test TEST=test/ad_product_catalog_test.rb
|
4
|
+
class AdProductCatalogTest < BaseTest
|
5
|
+
def test_all
|
6
|
+
vcr do
|
7
|
+
catalog = FacebookAds::AdProductCatalog.all.first
|
8
|
+
assert_equal '197871307315718', catalog.id
|
9
|
+
assert_equal 'Test', catalog.name
|
10
|
+
assert_equal 'commerce', catalog.vertical
|
11
|
+
assert_equal 1, catalog.product_count
|
12
|
+
assert_equal 1, catalog.feed_count
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_create
|
17
|
+
vcr do
|
18
|
+
catalog = FacebookAds::AdProductCatalog.create(name: 'Foo Bar')
|
19
|
+
assert_equal 'Foo Bar', catalog.name
|
20
|
+
assert_equal 'commerce', catalog.vertical
|
21
|
+
assert_equal 0, catalog.product_count
|
22
|
+
assert_equal 0, catalog.feed_count
|
23
|
+
catalog = FacebookAds::AdProductCatalog.find(catalog.id)
|
24
|
+
assert_equal true, catalog.destroy
|
25
|
+
assert_nil FacebookAds::AdProductCatalog.find_by(name: 'Foo Bar')
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
# rake test TEST=test/ad_product_test.rb
|
4
|
+
class AdProductTest < BaseTest
|
5
|
+
def test_list
|
6
|
+
vcr do
|
7
|
+
catalog = FacebookAds::AdProductCatalog.find_by(name: 'Test')
|
8
|
+
products = catalog.ad_products
|
9
|
+
product = products.first
|
10
|
+
assert_equal '1489112071104048', product.id
|
11
|
+
assert_equal 'retro-ruby-earrings', product.retailer_id
|
12
|
+
assert_equal 'Precious Retro .925 Sterling Silver Artificial Ruby Earrings', product.name
|
13
|
+
assert_equal '$5 shipping - at your doorstep within 25-27 business days.', product.description
|
14
|
+
assert_equal 'Adoration-Precious', product.brand
|
15
|
+
assert_equal 'Jewelry | Earrings', product.category
|
16
|
+
assert_equal 'USD', product.currency
|
17
|
+
assert_equal '$156.00', product.price
|
18
|
+
assert_equal 'https://external.xx.fbcdn.net/safe_image.php?d=AQALnOfu1mhkpb4T&url=https%3A%2F%2Fd38eepresuu519.cloudfront.net%2F12c85243d743ac3cb21b71c34192b252%2Flarge.jpg&cfs=1&_nc_hash=AQBlxlDCq59tO6sE', product.image_url
|
19
|
+
assert_equal 'https://tophatter.com/lots/23275728', product.url
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/test/ad_set_test.rb
ADDED
data/test/ad_test.rb
ADDED
data/test/test_helper.rb
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
ENV['RAILS_ENV'] ||= 'test'
|
2
|
+
|
3
|
+
require 'coveralls'
|
4
|
+
Coveralls.wear!('rails')
|
5
|
+
|
6
|
+
# https://github.com/colszowka/simplecov
|
7
|
+
require 'simplecov'
|
8
|
+
SimpleCov.formatter = Coveralls::SimpleCov::Formatter
|
9
|
+
SimpleCov.start do
|
10
|
+
add_filter 'bin/console'
|
11
|
+
end
|
12
|
+
|
13
|
+
require 'facebook_ads'
|
14
|
+
require 'minitest/autorun'
|
15
|
+
require 'vcr'
|
16
|
+
require 'awesome_print'
|
17
|
+
|
18
|
+
VCR.configure do |config|
|
19
|
+
config.cassette_library_dir = 'test/vcr_cassettes'
|
20
|
+
config.hook_into :webmock
|
21
|
+
config.filter_sensitive_data('TEST_ACCESS_TOKEN') do
|
22
|
+
begin
|
23
|
+
File.read('test_access_token').chop
|
24
|
+
rescue Errno::ENOENT
|
25
|
+
'TEST_ACCESS_TOKEN'
|
26
|
+
end
|
27
|
+
end
|
28
|
+
config.filter_sensitive_data('TEST_BUSINESS_ID') do
|
29
|
+
begin
|
30
|
+
File.read('test_business_id').chop
|
31
|
+
rescue Errno::ENOENT
|
32
|
+
'TEST_BUSINESS_ID'
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
class BaseTest < Minitest::Test
|
38
|
+
protected
|
39
|
+
|
40
|
+
def setup
|
41
|
+
FacebookAds.access_token = begin
|
42
|
+
File.read('test_access_token').chop
|
43
|
+
rescue Errno::ENOENT
|
44
|
+
'TEST_ACCESS_TOKEN'
|
45
|
+
end
|
46
|
+
|
47
|
+
FacebookAds.business_id = begin
|
48
|
+
File.read('test_business_id').chop
|
49
|
+
rescue Errno::ENOENT
|
50
|
+
'TEST_BUSINESS_ID'
|
51
|
+
end
|
52
|
+
|
53
|
+
# FacebookAds.logger = Logger.new(STDOUT)
|
54
|
+
# FacebookAds.logger.level = Logger::Severity::DEBUG
|
55
|
+
end
|
56
|
+
|
57
|
+
def vcr
|
58
|
+
calling_method = caller[0][/`.*'/][1..-2]
|
59
|
+
|
60
|
+
VCR.use_cassette("#{self.class.name}-#{calling_method}", match_requests_on: [:host, :path]) do
|
61
|
+
yield
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://graph.facebook.com/v2.8/me/adaccounts?access_token=TEST_ACCESS_TOKEN&fields=id,account_id,account_status,age,created_time,currency,name
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- "*/*; q=0.5, application/xml"
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip, deflate
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Access-Control-Allow-Origin:
|
22
|
+
- "*"
|
23
|
+
Etag:
|
24
|
+
- '"8727ddc19027cf41ac64d844a2955c4c30bbfdcb"'
|
25
|
+
Pragma:
|
26
|
+
- no-cache
|
27
|
+
Cache-Control:
|
28
|
+
- private, no-cache, no-store, must-revalidate
|
29
|
+
Facebook-Api-Version:
|
30
|
+
- v2.8
|
31
|
+
Expires:
|
32
|
+
- Sat, 01 Jan 2000 00:00:00 GMT
|
33
|
+
Content-Type:
|
34
|
+
- application/json; charset=UTF-8
|
35
|
+
X-Fb-Trace-Id:
|
36
|
+
- CtmthPguZnS
|
37
|
+
X-Fb-Rev:
|
38
|
+
- '2761076'
|
39
|
+
Vary:
|
40
|
+
- Accept-Encoding
|
41
|
+
Content-Encoding:
|
42
|
+
- gzip
|
43
|
+
X-Fb-Debug:
|
44
|
+
- M17xwZAHmQJsxtPYHQ6V++j2xNTzdmADQ1enDSidz6U/Bx330r4820WEjDSwdAxS8Vw5qMKNxrQhTP/L036adA==
|
45
|
+
Date:
|
46
|
+
- Sun, 01 Jan 2017 02:33:35 GMT
|
47
|
+
Connection:
|
48
|
+
- keep-alive
|
49
|
+
Content-Length:
|
50
|
+
- '630'
|
51
|
+
body:
|
52
|
+
encoding: ASCII-8BIT
|
53
|
+
string: !binary |-
|
54
|
+
H4sIAAAAAAAAA4WUT2+bQBDFv0rE2aCZ2Z39d4vqVvLBjppQVUpVRQQTB7e1
|
55
|
+
K4yVWpG/ewfUQwPesOKAdoblx+PNe03WRVsk4dtrUq+TkBRl+4BEismzQiBl
|
56
|
+
jE5msl3uj7v2oe95p35oi/Z4SALK1qZKApmMiNkDWVlulpRNVbTV+qGtf0k5
|
57
|
+
IUCTIqVAOUJguWwKDkCOLI9NU+3Kk3R9uZvLxq7oH5m/1Jvn9mqxSM6z/6HR
|
58
|
+
OwVMDgjJshlBx+tDaK0z0pY99ZeKQGOKkKPqofUU9G3VFs2mauvdZojtlOiJ
|
59
|
+
Gq3IaWGMHa0PsY3OvHfeeA9Wg41gQ0q215oD+1ROnNZ6SKzIOq/YWKOV9mPi
|
60
|
+
aH1IjGgz77RW5CyoCDG4VGGOHFAHUlPEt9WnY/VTD5GRiYQGHStveYwcrY+Q
|
61
|
+
NWZIBv+tKHLnDRvIBj0p8u3x8fSWV0ZLhgZESRGHaYgbL4+crDBzGhVrNMZc
|
62
|
+
FJh7S5gcvKgbOvj3afPqcMHFwOiVE7OikwmzI4Hj9VFiaJN5Yzx4S7IiAuuU
|
63
|
+
XCewogB2Cvlr9TjElf+tFFt5jzgP1Jg33jAEVoyZRJvXposMcwlY9xrrXBys
|
64
|
+
XFA4BfzhuakPVx8PbVPV5fNbdmdEQitZ5gxoN5q+eHkUF+QycMrKl8aimTuh
|
65
|
+
wedoJOICuynu69262QvGG2AZKOfYjkgv7I+84Nhl4l62sXwAmS7JBO7yAXSf
|
66
|
+
aO8HcX1zl5y/z5LfxaZzcXjtOg/75tDdPlZP+6brWm6XejVf4HL7489q/oVW
|
67
|
+
+fVpmZf33UHFU1s10rPaXr8stwu4mS9Pq3zDq8/3c2k4n89/AXYRrTZUBwAA
|
68
|
+
http_version:
|
69
|
+
recorded_at: Sun, 01 Jan 2017 02:33:35 GMT
|
70
|
+
recorded_with: VCR 3.0.3
|
@@ -0,0 +1,130 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://graph.facebook.com/v2.8/me/adaccounts?access_token=TEST_ACCESS_TOKEN&fields=id,account_id,account_status,age,created_time,currency,name
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- "*/*; q=0.5, application/xml"
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip, deflate
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Access-Control-Allow-Origin:
|
22
|
+
- "*"
|
23
|
+
Etag:
|
24
|
+
- '"8727ddc19027cf41ac64d844a2955c4c30bbfdcb"'
|
25
|
+
Pragma:
|
26
|
+
- no-cache
|
27
|
+
Cache-Control:
|
28
|
+
- private, no-cache, no-store, must-revalidate
|
29
|
+
Facebook-Api-Version:
|
30
|
+
- v2.8
|
31
|
+
Expires:
|
32
|
+
- Sat, 01 Jan 2000 00:00:00 GMT
|
33
|
+
Content-Type:
|
34
|
+
- application/json; charset=UTF-8
|
35
|
+
X-Fb-Trace-Id:
|
36
|
+
- DS1qjlOMSaj
|
37
|
+
X-Fb-Rev:
|
38
|
+
- '2761076'
|
39
|
+
Vary:
|
40
|
+
- Accept-Encoding
|
41
|
+
Content-Encoding:
|
42
|
+
- gzip
|
43
|
+
X-Fb-Debug:
|
44
|
+
- 6+4AZVGdeDWLOC6AgJ93KwzhtilTnUjW1Y/UuERgFQGbzhN4eDm0F2sBIIl6uoViKGCirMP2vbZfYK7fg5y0oA==
|
45
|
+
Date:
|
46
|
+
- Sun, 01 Jan 2017 02:33:35 GMT
|
47
|
+
Connection:
|
48
|
+
- keep-alive
|
49
|
+
Content-Length:
|
50
|
+
- '630'
|
51
|
+
body:
|
52
|
+
encoding: ASCII-8BIT
|
53
|
+
string: !binary |-
|
54
|
+
H4sIAAAAAAAAA4WUT2+bQBDFv0rE2aCZ2Z39d4vqVvLBjppQVUpVRQQTB7e1
|
55
|
+
K4yVWpG/ewfUQwPesOKAdoblx+PNe03WRVsk4dtrUq+TkBRl+4BEismzQiBl
|
56
|
+
jE5msl3uj7v2oe95p35oi/Z4SALK1qZKApmMiNkDWVlulpRNVbTV+qGtf0k5
|
57
|
+
IUCTIqVAOUJguWwKDkCOLI9NU+3Kk3R9uZvLxq7oH5m/1Jvn9mqxSM6z/6HR
|
58
|
+
OwVMDgjJshlBx+tDaK0z0pY99ZeKQGOKkKPqofUU9G3VFs2mauvdZojtlOiJ
|
59
|
+
Gq3IaWGMHa0PsY3OvHfeeA9Wg41gQ0q215oD+1ROnNZ6SKzIOq/YWKOV9mPi
|
60
|
+
aH1IjGgz77RW5CyoCDG4VGGOHFAHUlPEt9WnY/VTD5GRiYQGHStveYwcrY+Q
|
61
|
+
NWZIBv+tKHLnDRvIBj0p8u3x8fSWV0ZLhgZESRGHaYgbL4+crDBzGhVrNMZc
|
62
|
+
FJh7S5gcvKgbOvj3afPqcMHFwOiVE7OikwmzI4Hj9VFiaJN5Yzx4S7IiAuuU
|
63
|
+
XCewogB2Cvlr9TjElf+tFFt5jzgP1Jg33jAEVoyZRJvXposMcwlY9xrrXBys
|
64
|
+
XFA4BfzhuakPVx8PbVPV5fNbdmdEQitZ5gxoN5q+eHkUF+QycMrKl8aimTuh
|
65
|
+
wedoJOICuynu69262QvGG2AZKOfYjkgv7I+84Nhl4l62sXwAmS7JBO7yAXSf
|
66
|
+
aO8HcX1zl5y/z5LfxaZzcXjtOg/75tDdPlZP+6brWm6XejVf4HL7489q/oVW
|
67
|
+
+fVpmZf33UHFU1s10rPaXr8stwu4mS9Pq3zDq8/3c2k4n89/AXYRrTZUBwAA
|
68
|
+
http_version:
|
69
|
+
recorded_at: Sun, 01 Jan 2017 02:33:35 GMT
|
70
|
+
- request:
|
71
|
+
method: get
|
72
|
+
uri: https://graph.facebook.com/v2.8/act_1132789356764349/advertisable_applications?access_token=TEST_ACCESS_TOKEN
|
73
|
+
body:
|
74
|
+
encoding: US-ASCII
|
75
|
+
string: ''
|
76
|
+
headers:
|
77
|
+
Accept:
|
78
|
+
- "*/*; q=0.5, application/xml"
|
79
|
+
Accept-Encoding:
|
80
|
+
- gzip, deflate
|
81
|
+
User-Agent:
|
82
|
+
- Ruby
|
83
|
+
response:
|
84
|
+
status:
|
85
|
+
code: 200
|
86
|
+
message: OK
|
87
|
+
headers:
|
88
|
+
Access-Control-Allow-Origin:
|
89
|
+
- "*"
|
90
|
+
Etag:
|
91
|
+
- '"ed5a3a3762d401f540d4f52b8a1a581c369b29c4"'
|
92
|
+
Pragma:
|
93
|
+
- no-cache
|
94
|
+
Cache-Control:
|
95
|
+
- private, no-cache, no-store, must-revalidate
|
96
|
+
Facebook-Api-Version:
|
97
|
+
- v2.8
|
98
|
+
Expires:
|
99
|
+
- Sat, 01 Jan 2000 00:00:00 GMT
|
100
|
+
Content-Type:
|
101
|
+
- application/json; charset=UTF-8
|
102
|
+
X-Fb-Trace-Id:
|
103
|
+
- FLOZqWyoOYj
|
104
|
+
X-Fb-Rev:
|
105
|
+
- '2761076'
|
106
|
+
Vary:
|
107
|
+
- Accept-Encoding
|
108
|
+
Content-Encoding:
|
109
|
+
- gzip
|
110
|
+
X-Fb-Debug:
|
111
|
+
- osSdSrQ/aBSnR2FqPJQgAMmD/lnFd5XwjzuDSuxRMjcrM56dPBHP41osYJLrHiBNRH5aBUq/Ru9qq5U+blWJHA==
|
112
|
+
Date:
|
113
|
+
- Sun, 01 Jan 2017 02:33:35 GMT
|
114
|
+
Connection:
|
115
|
+
- keep-alive
|
116
|
+
Content-Length:
|
117
|
+
- '302'
|
118
|
+
body:
|
119
|
+
encoding: ASCII-8BIT
|
120
|
+
string: !binary |-
|
121
|
+
H4sIAAAAAAAAA5WRXU+DMBSG/wrp9QYtSD+WGBOzK+OV807M0kEHzTra0G6E
|
122
|
+
LPvvlujALWj0tuf0PM95zwkU3HGweDuBnDtR6qYDC/Ast8K6TgkwA0rWO/9U
|
123
|
+
OWfsIouyqDlsutBpU3HnRBPmep9Fvq/me+H7Xnw1mAdPohWq6YJVpY2RdRks
|
124
|
+
BVf2q80anve9w5B5P9MXZeFfUcooIhBBgnCMcQLOsyu5x4OVtbB2yq1t23Dr
|
125
|
+
h2+03n2alT0vix64MWtZ3CNMMWZJmnoKogkbxVdCqUDXwetFavC5/XLj82tY
|
126
|
+
NzlZWdbrgxmp32mT0VwsYpZSGBMfSkzxHfyjxNTBCnGcONhSHMeFE9KzCPOL
|
127
|
+
Qxz/h/UjZlj0mkUoQZ4FCWOQ0hSc388fjb/W/JMCAAA=
|
128
|
+
http_version:
|
129
|
+
recorded_at: Sun, 01 Jan 2017 02:33:35 GMT
|
130
|
+
recorded_with: VCR 3.0.3
|