facegroup 0.2.1 → 0.3.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c009373d0d3128abc9ab870314d7ee411736f4f4
4
- data.tar.gz: 8aab07878d2451753b2e368b2f1b516f21c16121
3
+ metadata.gz: 6e6ee49fce9f477a401bf8f82b88fea4bcf1f747
4
+ data.tar.gz: 7c15f1801bbb3ebebfa6ce3c8514684ec87613d4
5
5
  SHA512:
6
- metadata.gz: f7dbfaa8bb444e2fa038a89fda5a3da23bed88fd1e3008856fd4bdb0aa28c68472e63197e97594e66ca26210a65c0d43db0a598016c7cd3c269dbf32b727e348
7
- data.tar.gz: 90f8d5919659ce6dfcc235a4a79f398835f30ffe064e923a3351335de02f54520fbefafc7f6b81232d869ecd0e622551169c5008c83dad065f1ffe698d8ef8b3
6
+ metadata.gz: adcb6f016f9481ac2c052cf944407f4faade693d07a122486f822faab627eb956c2d9d365892cd6253753c7e4e8a5c70277317a578ba1080649fb88227734433
7
+ data.tar.gz: c1a5418cfa37a2987236fc2ca406e3e0033c06a379e0880982ed130c020663ae26c77028023f118231bd7fece3ba9b9c0c1cc00b17a5da314f7415f89ad1e914
@@ -15,7 +15,7 @@ module FaceGroup
15
15
 
16
16
  def self.find(id:)
17
17
  group_data = FbApi.group_data(id)
18
- new(group_data: group_data)
18
+ group_data.include?('error') ? nil : new(group_data: group_data)
19
19
  end
20
20
  end
21
21
  end
@@ -14,7 +14,7 @@ module FaceGroup
14
14
 
15
15
  def self.find(id:)
16
16
  posting_data = FaceGroup::FbApi.posting_data(id)
17
- new(data: posting_data)
17
+ posting_data.keys.include?('error') ? nil : new(data: posting_data)
18
18
  end
19
19
 
20
20
  private
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FaceGroup
4
- VERSION = '0.2.1'
4
+ VERSION = '0.3.0'
5
5
  end
@@ -2,22 +2,6 @@
2
2
  require_relative 'spec_helper.rb'
3
3
 
4
4
  describe 'FaceGroup specifications' do
5
- VCR.configure do |c|
6
- c.cassette_library_dir = CASSETTES_FOLDER
7
- c.hook_into :webmock
8
-
9
- c.filter_sensitive_data('<ACCESS_TOKEN>') do
10
- URI.unescape(ENV['FB_ACCESS_TOKEN'])
11
- end
12
-
13
- c.filter_sensitive_data('<ACCESS_TOKEN_ESCAPED>') do
14
- ENV['FB_ACCESS_TOKEN']
15
- end
16
-
17
- c.filter_sensitive_data('<CLIENT_ID>') { ENV['FB_CLIENT_ID'] }
18
- c.filter_sensitive_data('<CLIENT_SECRET>') { ENV['FB_CLIENT_SECRET'] }
19
- end
20
-
21
5
  before do
22
6
  VCR.insert_cassette CASSETTE_FILE, record: :new_episodes
23
7
  end
@@ -27,60 +11,74 @@ describe 'FaceGroup specifications' do
27
11
  end
28
12
 
29
13
  describe 'FbApi Credentials' do
30
- it 'should be able to get a new access token with ENV credentials' do
14
+ it '(HAPPY) should get new access token with ENV credentials' do
31
15
  FaceGroup::FbApi.access_token.length.must_be :>, 0
32
16
  end
33
17
 
34
- it 'should be able to get a new access token with file credentials' do
18
+ it '(HAPPY) should get new access token with file credentials' do
35
19
  FaceGroup::FbApi.config = { client_id: ENV['FB_CLIENT_ID'],
36
20
  client_secret: ENV['FB_CLIENT_SECRET'] }
37
21
  FaceGroup::FbApi.access_token.length.must_be :>, 0
38
22
  end
39
23
  end
40
24
 
41
- it 'should be able to open a Facebook Group' do
42
- group = FaceGroup::Group.find(
43
- id: ENV['FB_GROUP_ID']
44
- )
25
+ describe 'Finding Group Information' do
26
+ describe 'Find a Group' do
27
+ it '(HAPPY) should be able to find a Facebook Group with proper ID' do
28
+ group = FaceGroup::Group.find(id: ENV['FB_GROUP_ID'])
45
29
 
46
- group.name.length.must_be :>, 0
47
- end
30
+ group.name.length.must_be :>, 0
31
+ end
32
+
33
+ it '(SAD) should return nil if Group ID is invalid' do
34
+ group = FaceGroup::Group.find(id: INVALID_RESOURCE_ID)
35
+ group.must_be_nil
36
+ end
37
+ end
48
38
 
49
- it 'should get the latest feed from an group' do
50
- group = FaceGroup::Group.find(
51
- id: ENV['FB_GROUP_ID']
52
- )
39
+ describe 'Retrieving Group Feed' do
40
+ it '(HAPPY) should get the latest feed from an group with proper ID' do
41
+ group = FaceGroup::Group.find(id: ENV['FB_GROUP_ID'])
53
42
 
54
- feed = group.feed
55
- feed.count.must_be :>, 1
56
- end
43
+ feed = group.feed
44
+ feed.count.must_be :>, 1
45
+ end
57
46
 
58
- it 'should get basic information about postings on the feed' do
59
- group = FaceGroup::Group.find(
60
- id: ENV['FB_GROUP_ID']
61
- )
47
+ it '(HAPPY) should get the postings on the feed with proper ID' do
48
+ group = FaceGroup::Group.find(id: ENV['FB_GROUP_ID'])
62
49
 
63
- group.feed.postings.each do |posting|
64
- posting.id.wont_be_nil
65
- posting.updated_time.wont_be_nil
50
+ group.feed.postings.each do |posting|
51
+ posting.id.wont_be_nil
52
+ posting.updated_time.wont_be_nil
53
+ end
54
+ end
66
55
  end
67
56
  end
68
57
 
69
- it 'should find all parts of a full posting' do
70
- posting = FB_RESULT['posting']
71
- attachment = posting['attachment'].first
72
- retrieved = FaceGroup::Posting.find(id: posting['id'])
58
+ describe 'Finding Posting Information' do
59
+ it '(HAPPPY) should find all parts of a full posting' do
60
+ posting = FB_RESULT['posting']
61
+ attachment = posting['attachment'].first
62
+ retrieved = FaceGroup::Posting.find(id: posting['id'])
63
+
64
+ retrieved.id.must_equal posting['id']
65
+ retrieved.created_time.must_equal posting['created_time']
66
+ retrieved.message.must_equal posting['message']
67
+ retrieved.attachment.wont_be_nil
68
+ retrieved.attachment.description.must_equal attachment['description']
69
+ retrieved.attachment.url.must_match 'tutorialzine'
70
+ end
73
71
 
74
- retrieved.id.must_equal posting['id']
75
- retrieved.created_time.must_equal posting['created_time']
76
- retrieved.message.must_equal posting['message']
77
- retrieved.attachment.wont_be_nil
78
- retrieved.attachment.description.must_equal attachment['description']
79
- retrieved.attachment.url.must_match 'tutorialzine'
72
+ it '(SAD) should return nil if Posting ID is invalid' do
73
+ posting = FaceGroup::Posting.find(id: INVALID_RESOURCE_ID)
74
+ posting.must_be_nil
75
+ end
80
76
  end
81
77
 
82
- it 'should run the executable file' do
83
- output = FaceGroup::Runner.run!([ENV['FB_GROUP_ID']])
84
- output.split("\n").length.must_be :>, 5
78
+ describe 'Command Line Executable Actions' do
79
+ it 'should run the executable file' do
80
+ output = FaceGroup::Runner.run!([ENV['FB_GROUP_ID']])
81
+ output.split("\n").length.must_be :>, 5
82
+ end
85
83
  end
86
84
  end
@@ -31,13 +31,13 @@ http_interactions:
31
31
  Content-Type:
32
32
  - application/json; charset=UTF-8
33
33
  X-Fb-Trace-Id:
34
- - CzywRdmh8MO
34
+ - HNH8sDb6eTA
35
35
  X-Fb-Rev:
36
- - '2638327'
36
+ - '2663233'
37
37
  X-Fb-Debug:
38
- - LFM+h3jZPwPzV568MfOMFbPDcP8VD14iXykwMwMqBOPCMUkTUyfcL97M7z3RGFWoBiGQPuDIVUEdJGfbOTgdbQ==
38
+ - DC7A1MosnpwngxCO7BC4Kgt0E0cjyYYoGHsGS++1uHG0B1u/RpvCD4St2ZfTLQwO/gOkiV+lZ2NDsfZ3tiTc6Q==
39
39
  Date:
40
- - Sun, 23 Oct 2016 23:07:40 GMT
40
+ - Fri, 04 Nov 2016 05:50:42 GMT
41
41
  Connection:
42
42
  - close
43
43
  Content-Length:
@@ -46,10 +46,10 @@ http_interactions:
46
46
  encoding: UTF-8
47
47
  string: '{"access_token":"<ACCESS_TOKEN>","token_type":"bearer"}'
48
48
  http_version:
49
- recorded_at: Sun, 23 Oct 2016 23:07:41 GMT
49
+ recorded_at: Fri, 04 Nov 2016 05:50:43 GMT
50
50
  - request:
51
51
  method: get
52
- uri: https://graph.facebook.com/150352985174571?access_token=<ACCESS_TOKEN_ESCAPED>&fields=id,name,feed%7Bname,message,updated_time,created_time,attachments%7Btitle,url,media%7D%7D
52
+ uri: https://graph.facebook.com/_12345?access_token=<ACCESS_TOKEN_ESCAPED>&fields=id,name,feed%7Bname,message,updated_time,created_time,attachments%7Btitle,description,url,media%7D%7D
53
53
  body:
54
54
  encoding: US-ASCII
55
55
  string: ''
@@ -62,17 +62,18 @@ http_interactions:
62
62
  - http.rb/2.0.3
63
63
  response:
64
64
  status:
65
- code: 200
66
- message: OK
65
+ code: 404
66
+ message: Not Found
67
67
  headers:
68
+ Www-Authenticate:
69
+ - 'OAuth "Facebook Platform" "not_found" "(#803) Some of the aliases you requested
70
+ do not exist: _12345"'
68
71
  Access-Control-Allow-Origin:
69
72
  - "*"
70
- Etag:
71
- - '"3636e806cf74b50ee220296d4f7f6f2aaac1691d"'
72
73
  Pragma:
73
74
  - no-cache
74
75
  Cache-Control:
75
- - private, no-cache, no-store, must-revalidate
76
+ - no-store
76
77
  Facebook-Api-Version:
77
78
  - v2.6
78
79
  Expires:
@@ -80,112 +81,26 @@ http_interactions:
80
81
  Content-Type:
81
82
  - text/javascript; charset=UTF-8
82
83
  X-Fb-Trace-Id:
83
- - EjcUSy3TrOQ
84
+ - AEc1EkYn2tt
84
85
  X-Fb-Rev:
85
- - '2638327'
86
- Vary:
87
- - Accept-Encoding
86
+ - '2663233'
88
87
  X-Fb-Debug:
89
- - FTxzBLzsbYHDrTIgOoJ4DLAErqYuyEGIHKHao0TcNB8/9+TelMIX4Uh7F1E1UhFcBg0uKS71I//EaYaV0f40kw==
88
+ - 77OsTl1/9jzF+wln2U2LhBsZeB3kHZqwX7O+IT9dVyUGqXQups5EWbUaCLAdGTB9DE5MWSwUInPHejNTmg/kBQ==
90
89
  Date:
91
- - Sun, 23 Oct 2016 23:07:40 GMT
90
+ - Fri, 04 Nov 2016 05:50:43 GMT
92
91
  Connection:
93
92
  - close
93
+ Content-Length:
94
+ - '147'
94
95
  body:
95
96
  encoding: UTF-8
96
- string: '{"id":"150352985174571","name":"Web Service Development \u0040 NTHU","feed":{"data":[{"name":"GitHub
97
- Dumps REST Calls for Facebook''s GraphQL - The New Stack","message":"Github''s
98
- adoption of GraphQL for APIs, over RESTful services, might be the tipping
99
- point that makes GraphQL ubiquitous. From what little exposure I have to it
100
- (thanks to YenTing and Yen-Nan at Cardinal Blue), it seems we are taking the
101
- complexity and burden of APIs away from API consumers, and putting it squarely
102
- at the feet of API providers. That means using APIs is about to become significantly
103
- easier (albeit more deeply nested) for everyone! But it also means that creating
104
- APIs is about to become significantly harder. Read more about the big shift
105
- at Github.","updated_time":"2016-10-20T08:29:06+0000","created_time":"2016-10-20T05:45:32+0000","id":"150352985174571_524070464469486","attachments":{"data":[{"title":"GitHub
106
- Dumps REST Calls for Facebook''s GraphQL - The New Stack","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fthenewstack.io\u00252Fgithub-dumps-rest-graphql-api\u00252F&h=YAQHzMjoy&s=1&enc=AZMpf-S_2VYik6184ukcBdzjF-3PpyLReF5nW05P4Ayx8nbVzyShNMHp81bPli30OusK3C1qiW0BLXTxP_KOWY8r","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQC5HLw3s46cLqn7&w=720&h=720&url=http\u00253A\u00252F\u00252Fthenewstack.io\u00252Fwp-content\u00252Fuploads\u00252F2016\u00252F09\u00252FGHU-GraphQL-Woah.jpg&cfs=1&sx=0&sy=0&sw=2448&sh=2448","width":720}}}]}},{"name":"Taking
107
- PHP Seriously","message":"https:\/\/m.facebook.com\/story.php?story_fbid=1098448240203391&id=100001146751327","updated_time":"2016-10-13T18:17:23+0000","created_time":"2016-10-13T17:15:20+0000","id":"150352985174571_521137638096102","attachments":{"data":[{"title":"Taking
108
- PHP Seriously","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fslack.engineering\u00252Ftaking-php-seriously-cf7a60065329\u002523.g3w9ecf66&h=sAQE7DLiZ&s=1&enc=AZOjStbZrdh2BTeov3xBLmrDmpSzHrOD1A7augRsyYWm01FXnKPbvMurc18wBo0f2-zE9GgPiW6UZDcJ0qzjKkRf","media":{"image":{"height":669,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQCmbxAdG46sLBUD&w=720&h=720&url=https\u00253A\u00252F\u00252Fd262ilb51hltx0.cloudfront.net\u00252Fmax\u00252F1200\u00252F1\u00252Ax5N8tfTVEmQro2ySxoZtvw.jpeg&cfs=1","width":669}}}]}},{"name":"How
109
- To Save The Princess In 8 Programming Languages","updated_time":"2016-10-06T08:39:47+0000","created_time":"2016-10-06T08:28:40+0000","id":"150352985174571_518029841740215","attachments":{"data":[{"title":"How
110
- To Save The Princess In 8 Programming Languages","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Ftoggl.com\u00252Fprogramming-princess&h=xAQFOEieu&s=1&enc=AZOb6TELEoRkW6sKZBeOKyx2JjygU8WGx-WHsg0ieCovelJu2j5IrcipmzwNgC1WY22uf4PI6SOLRVW05FC6XQjq","media":{"image":{"height":630,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQDEZQJwFjW82Fzm&w=720&h=720&url=https\u00253A\u00252F\u00252Ftoggl.com\u00252Fimages\u00252Fshare-img\u00252Ffb-share-git-princess.jpg&cfs=1","width":630}}}]}},{"name":"Guess
111
- the Programming Language | Tutorialzine","message":"A little quiz to keep
112
- you sharp on programming trends.","updated_time":"2016-10-06T06:51:44+0000","created_time":"2016-10-04T02:21:25+0000","id":"150352985174571_517105121832687","attachments":{"data":[{"title":"Guess
113
- the Programming Language | Tutorialzine","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Ftutorialzine.com\u00252F2014\u00252F06\u00252Fguess-the-programming-language\u00252F&h=_AQGXcqF0&s=1&enc=AZO8_k2mGlo63xRMItgRxcJ3KXSH1qFZTqEXwGb5AKfsDv8ffCzjTbLQtdVVaJg6KC5XNsmX8y0KweB1-SZOZbQ7","media":{"image":{"height":490,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQB9saA-D40lNQqm&w=720&h=720&url=http\u00253A\u00252F\u00252Fcdn.tutorialzine.com\u00252Fwp-content\u00252Fuploads\u00252F2014\u00252F06\u00252Fguess-the-programming-language.jpg&cfs=1","width":490}}}]}},{"name":"How
114
- it feels to learn JavaScript in 2016","updated_time":"2016-10-06T01:18:12+0000","created_time":"2016-10-05T13:47:43+0000","id":"150352985174571_517701838439682","attachments":{"data":[{"title":"How
115
- it feels to learn JavaScript in 2016","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fhackernoon.com\u00252Fhow-it-feels-to-learn-javascript-in-2016-d3a717dd577f\u002523.m0lkkfan1&h=lAQF473Xt&s=1&enc=AZMeRE4HRGYgyXchdkhmzDEP8nbaKmeCttfJLL0m0qqUW3t0VSgo2H9qVZTki5Fykd8q8piqYmtbO1hftJ4OCeD-","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQBw5xIxnMhHtpnj&w=720&h=720&url=https\u00253A\u00252F\u00252Fcdn-images-2.medium.com\u00252Fmax\u00252F1200\u00252F1\u00252AraWO3dhM4jMjf9VY-kZzNg.png&cfs=1","width":720}}}]}},{"name":"5
116
- emerging programming languages with a bright future","message":"Up and coming
117
- languages worth keeping our eyes on. I''m already a huge fan of Crystal and
118
- Rust, but the author has convinced me to pay more attention to Kotlin and
119
- Elm.","updated_time":"2016-09-22T08:12:35+0000","created_time":"2016-09-21T10:13:58+0000","id":"150352985174571_511894255687107","attachments":{"data":[{"title":"5
120
- emerging programming languages with a bright future","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Ftechbeacon.com\u00252F5-emerging-programming-languages-bright-future\u00253Futm_content\u00253Dbuffer300a1\u002526utm_medium\u00253Dsocial\u002526utm_source\u00253Dtwitter.com\u002526utm_campaign\u00253Dbuffer&h=7AQFqoF4w&s=1&enc=AZOcpN1TtkkxLsE26at9n3Pn2lm0mZimFB_Q8lu9uqVfNFM1oybLIFwc5QvyZ2hhsUGO1afi0O2ah7RCWv_dhtMO","media":{"image":{"height":480,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQAxbtCPHht3vWb6&w=720&h=720&url=http\u00253A\u00252F\u00252Ftechbeacon.com\u00252Fsites\u00252Fdefault\u00252Ffiles\u00252Fstyles\u00252Fsocial\u00252Fpublic\u00252Ffield\u00252Fimage\u00252F5_emerging_programming_languages_with_a_bright_future.jpg\u00253Fitok\u00253Dm0nlEinF&cfs=1","width":480}}}]}},{"name":"A
121
- whole new Universe","message":"I can''t even wrap my head around all the new
122
- features Github just released: code reviews, kanban boards, and much more.","updated_time":"2016-09-19T09:14:51+0000","created_time":"2016-09-15T03:42:48+0000","id":"150352985174571_509461352597064","attachments":{"data":[{"title":"A
123
- whole new Universe","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fgithub.com\u00252Funiverse-2016&h=CAQGu0989&s=1&enc=AZPWVEFbBeUjhIpGBCyYpb_-nztFQjF1X4iV0fky0Ny_VL5sCPlAqPdOFdUjucSRJbnu82OpAbwdQEque4I_dtbp","media":{"image":{"height":630,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQBsb70KV75vMJ8B&w=720&h=720&url=https\u00253A\u00252F\u00252Fassets-cdn.github.com\u00252Fimages\u00252Fmodules\u00252Funiverse-2016\u00252Funiverse-open-graph.png&cfs=1","width":630}}}]}},{"name":"Vert.x","message":"http:\/\/vertx.io\/","updated_time":"2016-09-13T20:34:39+0000","created_time":"2016-09-13T20:34:39+0000","id":"150352985174571_508953969314469","attachments":{"data":[{"title":"Vert.x","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fvertx.io\u00252F&h=SAQEZza3C&s=1&enc=AZM9uG4L8irWmfzpetWja_hs5ozH7uTj3zZZUeTdgPVysOFrJVgq2uRubR2Y0UpP6qsk6_Httno9fGBrW8Xe5_YI","media":{"image":{"height":360,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQC13D8UqDGMX5IF&w=720&h=720&url=http\u00253A\u00252F\u00252Fvertx.io\u00252Fassets\u00252Fuser_logos\u00252Fswisscom.png&cfs=1","width":360}}}]}},{"name":"Codecademy","updated_time":"2016-09-13T02:04:20+0000","created_time":"2016-09-13T02:04:20+0000","id":"150352985174571_508631766013356","attachments":{"data":[{"title":"Timeline
124
- Photos","url":"https:\/\/www.facebook.com\/codecademy\/photos\/a.553205214692855.138303.272256069454439\/1387442691269099\/?type=3","media":{"image":{"height":377,"src":"https:\/\/scontent.xx.fbcdn.net\/v\/t1.0-9\/s720x720\/14264951_1387442691269099_7557697962736020966_n.png?oh=1c67604ccd5679d98c72100f943f3863&oe=5891713F","width":720}}}]}},{"name":"Scaling
125
- Spinnaker at Netflix \u2014 The Basics","message":"https:\/\/medium.com\/\u0040ajordens\/scaling-spinnaker-at-netflix-part-1-8a5ae51ee6de#.fubo771g2","updated_time":"2016-09-11T09:14:53+0000","created_time":"2016-09-11T09:14:53+0000","id":"150352985174571_507894159420450","attachments":{"data":[{"title":"Scaling
126
- Spinnaker at Netflix \u2014 The Basics","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fmedium.com\u00252F\u002540ajordens\u00252Fscaling-spinnaker-at-netflix-part-1-8a5ae51ee6de\u002523.fubo771g2&h=GAQGR1jp_&s=1&enc=AZOsM-rObXq-NZ8IN4zgxduow_zzyJJN8oFA7g0731F2ThqcJz6IFRXvRTzvT6q10wH8_HHvpFh-kdwFO8BPLwbx","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQBS3PgL3uUEU1VC&w=720&h=720&url=https\u00253A\u00252F\u00252Fcdn-images-1.medium.com\u00252Fmax\u00252F1200\u00252F1\u00252AMrL6DHIxxY6CrL9Binpjjg.png&cfs=1","width":720}}}]}},{"name":"Design
127
- Stamina Hypothesis","message":"Why (and when) we need architecture.","updated_time":"2016-09-08T03:33:06+0000","created_time":"2015-09-24T11:12:32+0000","id":"150352985174571_390601061149761","attachments":{"data":[{"title":"Design
128
- Stamina Hypothesis","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fmartinfowler.com\u00252Fbliki\u00252FDesignStaminaHypothesis.html&h=MAQEPmidi&s=1&enc=AZMscZ5ByY7Xh6_-P7PLIil52a7ygWPn_25oIQRH9u6B-Nf6LVNY8uxi5yGtOTr-ePAqZNTu9GJ3SfCcbg1CYacr","media":{"image":{"height":329,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQB61p6nJsutcaQ4&w=720&h=720&url=http\u00253A\u00252F\u00252Fmartinfowler.com\u00252Fbliki\u00252Fimages\u00252FdesignStaminaGraph.gif&cfs=1","width":329}}}]}},{"name":"Git
129
- 2.10 has been released","updated_time":"2016-09-03T06:33:51+0000","created_time":"2016-09-03T05:23:56+0000","id":"150352985174571_504539303089269","attachments":{"data":[{"title":"Git
130
- 2.10 has been released","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fgithub.com\u00252Fblog\u00252F2242-git-2-10-has-been-released&h=TAQEO82l0&s=1&enc=AZM8UofTAaNObrpYGEdBNrQoZE7QkXsKTTNF87IwQmioNMA3-gswGJWScFDpoZaE2RXEUZ5jT3kXjPIg4I1uqU28","media":{"image":{"height":630,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQAMeAXoLqWgJ6YI&w=720&h=720&url=https\u00253A\u00252F\u00252Fcloud.githubusercontent.com\u00252Fassets\u00252F121322\u00252F16134794\u00252F284be2e6-33d4-11e6-9165-58068a872ec2.png&cfs=1","width":630}}}]}},{"name":"The
131
- target=\"_blank\" vulnerability by example","message":"https:\/\/dev.to\/ben\/the-targetblank-vulnerability-by-example","updated_time":"2016-09-02T17:50:31+0000","created_time":"2016-09-01T12:49:45+0000","id":"150352985174571_503746883168511","attachments":{"data":[{"title":"The
132
- target=\"_blank\" vulnerability by example","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fdev.to\u00252Fben\u00252Fthe-targetblank-vulnerability-by-example&h=9AQGeBtRp&s=1&enc=AZOTThm23Z6CU5evZqf9H9oQ6pyy78mhqT56HsssWhdcXScQmWlIdSMYz9jV4W0rU3tOEHzzzZrYKGE0_Krq2NoJ","media":{"image":{"height":700,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQCuBI-PnC7cvAsc&w=720&h=720&url=https\u00253A\u00252F\u00252Fres.cloudinary.com\u00252Fpracticaldev\u00252Fimage\u00252Ffetch\u00252Fs--AGTf6Osi--\u00252Fc_imagga_scale\u00252Cf_auto\u00252Cfl_progressive\u00252Ch_700\u00252Cq_auto\u00252Cw_1480\u00252Fhttps\u00253A\u00252F\u00252Fi.vimeocdn.com\u00252Fvideo\u00252F570148251_1280x720.jpg&cfs=1","width":700}}}]}},{"name":"Katacoda
133
- - Interactive Learning Platform for Software Engineers","message":"just discovered
134
- this .... looks nice","updated_time":"2016-08-26T02:34:28+0000","created_time":"2016-08-26T02:34:28+0000","id":"150352985174571_500972406779292","attachments":{"data":[{"title":"Katacoda
135
- - Interactive Learning Platform for Software Engineers","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fwww.katacoda.com\u00252F&h=fAQFrjrYn&s=1&enc=AZNJH9mmcIw2lNQqHm6ROIQ5NTqWeynJf1Y2EEpwrbGh7FgVQmquo86l1ghD_32IxTUnxAfotA6FsK6Bc6sGN8u7","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQBt33FvO3-PQ4vI&w=720&h=720&url=https\u00253A\u00252F\u00252Fwww.katacoda.com\u00252Fimages\u00252Fbackgrounds\u00252Fpeople-working.jpg&cfs=1","width":720}}}]}},{"name":"Let''s
136
- Encrypt - Wikipedia, the free encyclopedia","message":"No reason not to use
137
- https for your web services: apart from the good old https:\/\/www.startssl.com,
138
- now we have https:\/\/letsencrypt.org which makes getting, installing and
139
- keeping a cert up to date easier. Plus its backed by many big guns and its
140
- FREE! Here is the wikipedia article about it: https:\/\/en.m.wikipedia.org\/wiki\/Let\u002527s_Encrypt.
141
- Just remember its pretty new and do read about how the certs are signed and
142
- accepted by browser\/clients.","updated_time":"2016-08-22T00:55:29+0000","created_time":"2016-08-21T09:50:36+0000","id":"150352985174571_499005640309302","attachments":{"data":[{"title":"Let''s
143
- Encrypt - Wikipedia, the free encyclopedia","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fen.m.wikipedia.org\u00252Fwiki\u00252FLet\u00252527s_Encrypt&h=hAQE2ieDs&s=1&enc=AZPtbkBwHFr5EYupqFYgk8WW05jGpS-4Rk4ajNHE9WOvW5soYK2M4TBVGfPEnHB7Vy-LWopBz9IldjsaO8EfOXWu","media":{"image":{"height":131,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQApCjwHGpTUJRSa&w=720&h=720&url=https\u00253A\u00252F\u00252Fupload.wikimedia.org\u00252Fwikipedia\u00252Fcommons\u00252Fthumb\u00252Fb\u00252Fbb\u00252FLetsencrypt_screenshot_2_domain_choice.png\u00252F220px-Letsencrypt_screenshot_2_domain_choice.png&cfs=1","width":131}}}]}},{"name":"Google''s
144
- QUIC protocol: moving the web from TCP to UDP","message":"A speedier web?
145
- Yes thank you!\n\n","updated_time":"2016-08-02T04:40:01+0000","created_time":"2016-08-01T13:53:37+0000","id":"150352985174571_491254161084450","attachments":{"data":[{"title":"Google''s
146
- QUIC protocol: moving the web from TCP to UDP","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fma.ttias.be\u00252Fgoogles-quic-protocol-moving-web-tcp-udp\u00252F&h=wAQGbV1yc&s=1&enc=AZMZ1c0foNJLon4qufED0wOuZ4uAIS6nvl61er-e0QokB00-ixZ3a2ixHFTIQrlSIMjnAVLVQw-XqXGXADxU9qBC","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQAAP49rj-fnvioY&w=720&h=720&url=https\u00253A\u00252F\u00252Fma.ttias.be\u00252Fwp-content\u00252Fuploads\u00252F2016\u00252F07\u00252Fquic_parking_lot_problem.png&cfs=1","width":720}}}]}},{"name":"Introducing
147
- GitKraken Pro\u2014launch fundraiser | Axosoft","message":"https:\/\/blog.axosoft.com\/2016\/07\/28\/introducing-gitkraken-pro\/","updated_time":"2016-07-30T17:51:41+0000","created_time":"2016-07-30T17:51:41+0000","id":"150352985174571_490544944488705","attachments":{"data":[{"title":"Introducing
148
- GitKraken Pro\u2014launch fundraiser | Axosoft","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fblog.axosoft.com\u00252F2016\u00252F07\u00252F28\u00252Fintroducing-gitkraken-pro\u00252F&h=1AQEXGyv7&s=1&enc=AZNNl2EkIyn5n2lfnf_BpaQkPLmDCGBRO5mgoV7Tx6tL_c4M90rwnank1dYuToQqgf6HqdJA6IIFOXCXtk9OoNyv","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQCiRe3ytesqyg6K&w=720&h=720&url=https\u00253A\u00252F\u00252Fblog.axosoft.com\u00252Fwp-content\u00252Fuploads\u00252F2016\u00252F07\u00252FTeaming-Up-v2-wide.png&cfs=1&l","width":720}}}]}},{"name":"Create
149
- Apps with No Configuration | React","message":"For those using React, although
150
- optional webpack loaders (such as sass) still need to be added!","updated_time":"2016-07-23T10:41:04+0000","created_time":"2016-07-23T09:55:25+0000","id":"150352985174571_487752758101257","attachments":{"data":[{"title":"Create
151
- Apps with No Configuration | React","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Ffacebook.github.io\u00252Freact\u00252Fblog\u00252F2016\u00252F07\u00252F22\u00252Fcreate-apps-with-no-configuration.html&h=0AQGBENqH&s=1&enc=AZPcK7aypFrQ2wkY7ZJPeUEt8Sr-ejtIl3lP1GoENK2vt-gDoqdVKAyJ86jXbe5F_PajWzW_99NM8780c0D28Pl1","media":{"image":{"height":400,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQC26d6oRyFdqvxX&w=720&h=720&url=https\u00253A\u00252F\u00252Ffacebook.github.io\u00252Freact\u00252Fimg\u00252Flogo_og.png&cfs=1","width":400}}}]}},{"name":"introduction\u00b6
152
- Lettuce is an extremely useful and charming tool for BDD (Behavior Driven...
153
- -...","message":"Test scenarios that anyone can make sense of","updated_time":"2016-07-22T11:46:59+0000","created_time":"2016-07-22T06:28:02+0000","id":"150352985174571_487315358144997","attachments":{"data":[{"title":"introduction\u00b6
154
- Lettuce is an extremely useful and charming tool for BDD (Behavior Driven...
155
- -...","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Flettuce.it\u00252Ftutorial\u00252Fsimple.html\u002523tutorial-simple&h=LAQHpk3Al&s=1&enc=AZNP93JFnpxKS_Cc826K5YU5ml-MI7t6LpmRKO_vcSCqmUDQCk8D8X0tZB7Ye3vsLavW_jBg4uVLz-IiPo5XKoj1","media":{"image":{"height":687,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQDL7gIjkOiwMbE7&w=720&h=720&url=http\u00253A\u00252F\u00252Flettuce.it\u00252F_images\u00252Fscreenshot5.png&cfs=1","width":687}}}]}},{"message":"Check
156
- out: https:\/\/www.websequencediagrams.com \u2014 fun and friendly way to
157
- create sequence diagrams for web and mobile activities. I usually end up drawing
158
- these on paper or on the board. I think it will be quite engaging to play
159
- with this live!","updated_time":"2016-07-21T02:25:49+0000","created_time":"2016-07-20T03:59:51+0000","id":"150352985174571_486566974886502","attachments":{"data":[{"url":"https:\/\/www.facebook.com\/photo.php?fbid=1058362510919499&set=gm.486566974886502&type=3","media":{"image":{"height":392,"src":"https:\/\/scontent.xx.fbcdn.net\/v\/t1.0-9\/s720x720\/13680904_1058362510919499_8542835077177246391_n.jpg?oh=e23aa643f32eb9665e3c8ba8a43c01ca&oe=58A0A9E7","width":720}}}]}},{"name":"Dropbox
160
- open-sources Lepton, a compression algorithm that cuts JPEG file size by 22\u0025","message":"http:\/\/venturebeat.com\/2016\/07\/14\/dropbox-open-sources-lepton-a-compression-algorithm-that-cuts-jpeg-file-size-by-22\/","updated_time":"2016-07-15T05:52:51+0000","created_time":"2016-07-14T19:37:54+0000","id":"150352985174571_484513371758529","attachments":{"data":[{"title":"Dropbox
161
- open-sources Lepton, a compression algorithm that cuts JPEG file size by 22\u0025","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fventurebeat.com\u00252F2016\u00252F07\u00252F14\u00252Fdropbox-open-sources-lepton-a-compression-algorithm-that-cuts-jpeg-file-size-by-22\u00252F&h=cAQHtSyRz&s=1&enc=AZNEjRIgXar4FOwLc6uGxtwGMIB0XjFWvPuVBR8hMHcvlRD7xqtaftAnAiBIYyBjG_SQJMvl0aG3LNoiR5MGwlei","media":{"image":{"height":585,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQCBxul8ygkf06Je&w=720&h=720&url=https\u00253A\u00252F\u00252Fventurebeat.com\u00252Fwp-content\u00252Fuploads\u00252F2015\u00252F11\u00252FDropbox-Open-outside-Novet-780x585.jpg&cfs=1","width":585}}}]}},{"name":"Serverless
162
- Architectures","message":"\"Serverless\" is the new sensation in service architecture,
163
- and it integrates the recent trends of microservices and reactive (message-driven)
164
- architectures. We will play with some of these concepts in our SOA class this
165
- coming semester. Take a peek at what''s brewing.\nhttp:\/\/martinfowler.com\/articles\/serverless.html","updated_time":"2016-07-14T19:01:17+0000","created_time":"2016-07-14T12:16:33+0000","id":"150352985174571_484366188439914","attachments":{"data":[{"title":"Serverless
166
- Architectures","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fmartinfowler.com\u00252Farticles\u00252Fserverless.html\u002523benefits&h=jAQG7K83t&s=1&enc=AZPvJmESyk6TsdlPKkhoU6H_1mt2rUP9HedbzHV7Gg-aYveD1CNAA8ten1gSOHt0E76V7S0fPlmL1HprKkkRwejf","media":{"image":{"height":300,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQCGBUsGoj1TcRRD&w=720&h=720&url=http\u00253A\u00252F\u00252Fmartinfowler.com\u00252Farticles\u00252Fserverless\u00252Fsps.png&cfs=1","width":300}}}]}},{"name":"Pokemon
167
- Go Is Driving Insane Amounts of Sales at Small Local Businesses. Here''s How
168
- It Works","message":"I''m shocked at how Pok\u00e9mon Go is taking over our
169
- streets (very soon in TW, right?). And now its having a major effect on local
170
- businesses as well. Great example of how an online service can transform offline
171
- ones.","updated_time":"2016-07-13T09:36:32+0000","created_time":"2016-07-13T02:42:08+0000","id":"150352985174571_483847351825131","attachments":{"data":[{"title":"Pokemon
172
- Go Is Driving Insane Amounts of Sales at Small Local Businesses. Here''s How
173
- It Works","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fwww.inc.com\u00252Fwalter-chen\u00252Fpok-mon-go-is-driving-insane-amounts-of-sales-at-small-local-businesses-here-s-h.html&h=0AQGBENqH&s=1&enc=AZO7_mU6Ti2CC6_W48DaDb8knM5duXfTPtoGETe_3RFvllu93NGZmKeJ-9XQHVXHLMtnZlOcffahPEZxSFk3_fFN","media":{"image":{"height":450,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQCDr9LKzFIQfJFh&w=720&h=720&url=http\u00253A\u00252F\u00252Fwww.incimages.com\u00252Fuploaded_files\u00252Fimage\u00252F970x450\u00252FPokemon_Heroes_2003_03-cc_100058.jpg&cfs=1","width":450}}}]}},{"name":"SOA
174
- Syllabus","message":"The syllabus for next semester''s \"Service Oriented
175
- Architecture\" class is now online! Take a look and share it with your coder
176
- friends who are dreaming of their first startup :)","updated_time":"2016-07-04T11:18:26+0000","created_time":"2016-07-04T06:48:44+0000","id":"150352985174571_480686308807902","attachments":{"data":[{"title":"SOA
177
- Syllabus","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fbit.ly\u00252Fsoa-syllabus&h=8AQEzZIIe&s=1&enc=AZPMvD8DtN0P1Rqm_-VvTO9JM3y-910GomHPeoH39tz9vi2IOh22AeCGVAngi-7vQwh4ZW5klcWpf-hmjxwXAxFm"}]}},{"name":"Mongolia
178
- is changing all its addresses to three-word phrases","message":"A plucky little
179
- online startup is changing how we address and locate geographic places. The
180
- story below shows how countries and international organizations are adopting
181
- this method. Take a look at https:\/\/what3words.com to find your own three
182
- words :)","updated_time":"2016-06-26T05:04:58+0000","created_time":"2016-06-15T07:55:13+0000","id":"150352985174571_474135702796296","attachments":{"data":[{"title":"Mongolia
183
- is changing all its addresses to three-word phrases","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fqz.com\u00252F705273\u00252Fmongolia-is-changing-all-its-addresses-to-three-word-phrases\u00252F&h=TAQEO82l0&s=1&enc=AZMmmMIarpg9VWSz45du2gFvh6N6XtzG655ZYGCtUlsTU__-1mUV9POKFM6dS01pXOov2WKAun2szRbtSWzNC6rV","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQBCzb8yBioJKKug&w=720&h=720&url=https\u00253A\u00252F\u00252Fqzprod.files.wordpress.com\u00252F2016\u00252F06\u00252Fjune-13-rtx12cmt-e1465820880769.jpg\u00253Fquality\u00253D80\u002526strip\u00253Dall\u002526w\u00253D1600&cfs=1","width":720}}}]}}],"paging":{"previous":"https:\/\/graph.facebook.com\/v2.6\/150352985174571\/feed?fields=name,message,updated_time,created_time,attachments\u00257Btitle,url,media\u00257D&since=1476952146&access_token=<ACCESS_TOKEN>&limit=25&__paging_token=enc_AdDRT3FRqddWHdExcEnxBuffZCipxhESZBM93TZAL1VTlcfHQr3aWV1rq23kG3uiPxcZCwvQeCiZC8fEJvrhCQFCo6fyMk1u9HaT3EXZBICgj897coSwZDZD&__previous=1","next":"https:\/\/graph.facebook.com\/v2.6\/150352985174571\/feed?fields=name,message,updated_time,created_time,attachments\u00257Btitle,url,media\u00257D&access_token=<ACCESS_TOKEN>&limit=25&until=1466917498&__paging_token=enc_AdBmZAsUzYqHLvymmCwfLv8K48KqrS6LGOHvgiJYkb7Brd7RrwyTZA8gMCDGPWYdza3XzU34YBZB7Xn0iN7WcT9cLhvOIFzhb8ZCDP8F35OnaNwZBtQZDZD"}}}'
97
+ string: '{"error":{"message":"(#803) Some of the aliases you requested do not
98
+ exist: _12345","type":"OAuthException","code":803,"fbtrace_id":"AEc1EkYn2tt"}}'
184
99
  http_version:
185
- recorded_at: Sun, 23 Oct 2016 23:07:42 GMT
100
+ recorded_at: Fri, 04 Nov 2016 05:50:43 GMT
186
101
  - request:
187
102
  method: get
188
- uri: https://graph.facebook.com/150352985174571_517105121832687?access_token=<ACCESS_TOKEN_ESCAPED>&fields=name,message,updated_time,created_time,attachments%7Btitle,description,url,media%7D
103
+ uri: https://graph.facebook.com/150352985174571?access_token=<ACCESS_TOKEN_ESCAPED>&fields=id,name,feed%7Bname,message,updated_time,created_time,attachments%7Btitle,description,url,media%7D%7D
189
104
  body:
190
105
  encoding: US-ASCII
191
106
  string: ''
@@ -204,7 +119,7 @@ http_interactions:
204
119
  Access-Control-Allow-Origin:
205
120
  - "*"
206
121
  Etag:
207
- - '"12c40e1438cb186785b25ed66d005b8d3328fb7b"'
122
+ - '"af7a28a19ecc7b5f7a57d31ae2ecc5eb9a7011d5"'
208
123
  Pragma:
209
124
  - no-cache
210
125
  Cache-Control:
@@ -216,29 +131,83 @@ http_interactions:
216
131
  Content-Type:
217
132
  - text/javascript; charset=UTF-8
218
133
  X-Fb-Trace-Id:
219
- - A1KgW907PvI
134
+ - GoFnnTpJV3Z
220
135
  X-Fb-Rev:
221
- - '2638327'
136
+ - '2663233'
222
137
  Vary:
223
138
  - Accept-Encoding
224
139
  X-Fb-Debug:
225
- - pjSsBhpJdP8iXrDD1ArO6IuMqKrBKBTM2hUKvusLa4cO4BP1a9ShszwQJ9utPQpBUfqFqXRQmAm1CF9pUnAGqg==
140
+ - 0ktkzLjxNYMz5WLB1VcdBhXU37Q2XCVHiUQTB4GwpUmTBVUqlbzzWBwJ+VaPTzAeWdxXt16v2ujouTucP0v3Fg==
226
141
  Date:
227
- - Sun, 23 Oct 2016 23:07:41 GMT
142
+ - Fri, 04 Nov 2016 05:50:43 GMT
228
143
  Connection:
229
144
  - close
230
145
  body:
231
146
  encoding: UTF-8
232
- string: '{"name":"Guess the Programming Language | Tutorialzine","message":"A
233
- little quiz to keep you sharp on programming trends.","updated_time":"2016-10-06T06:51:44+0000","created_time":"2016-10-04T02:21:25+0000","attachments":{"data":[{"title":"Guess
147
+ string: '{"id":"150352985174571","name":"Web Service Development \u0040 NTHU","feed":{"data":[{"name":"seriot.ch
148
+ - Parsing JSON is a Minefield \ud83d\udca3","message":"From the article: \"JSON
149
+ is not a data format you can rely on blindly [...] edge cases and maliciously
150
+ crafted payloads can cause bugs, crashes and denial of services, mainly because
151
+ JSON libraries rely on specifications that have evolved over time and that
152
+ left many details loosely specified or not specified at all.\" Long story
153
+ short: it seems XML will never die :D (actually, parsing XML is even worse...)","updated_time":"2016-10-28T02:09:39+0000","created_time":"2016-10-27T14:46:58+0000","id":"150352985174571_527664860776713","attachments":{"data":[{"title":"seriot.ch
154
+ - Parsing JSON is a Minefield \ud83d\udca3","description":"JSON is the de
155
+ facto standard when it comes to (un)serialising and exchanging data in web
156
+ and mobile programming. But how well do you really know JSON? We''ll read
157
+ the specifications and write test cases together. We''ll test common JSON
158
+ libraries against our test cases. I''ll show that JSON is not the...","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fseriot.ch\u00252Fparsing_json.html&h=IAQFKye6D&s=1&enc=AZPAOV376JjZZQo9LD_zAMwwn8BLlyx7Do3_qbUflCMU7VMth7LPCR0yOStbP3_0xKbjrXZdAL5O3XDKUx-3z0sq","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQBafep0D8nqgNS7&w=720&h=720&url=http\u00253A\u00252F\u00252Fseriot.ch\u00252Fjson\u00252Fpruned_results.png&cfs=1","width":720}}}]}},{"name":"GitHub
159
+ Dumps REST Calls for Facebook''s GraphQL - The New Stack","message":"Github''s
160
+ adoption of GraphQL for APIs, over RESTful services, might be the tipping
161
+ point that makes GraphQL ubiquitous. From what little exposure I have to it
162
+ (thanks to YenTing and Yen-Nan at Cardinal Blue), it seems we are taking the
163
+ complexity and burden of APIs away from API consumers, and putting it squarely
164
+ at the feet of API providers. That means using APIs is about to become significantly
165
+ easier (albeit more deeply nested) for everyone! But it also means that creating
166
+ APIs is about to become significantly harder. Read more about the big shift
167
+ at Github.","updated_time":"2016-10-20T08:29:06+0000","created_time":"2016-10-20T05:45:32+0000","id":"150352985174571_524070464469486","attachments":{"data":[{"title":"GitHub
168
+ Dumps REST Calls for Facebook''s GraphQL - The New Stack","description":"Hoping
169
+ to streamline the remote querying services of its site, GitHub is moving its
170
+ API (application programming interface) from REST calls to Facebook\u2019s
171
+ GraphQL API. In the company\u2019s recent user conference GitHub Universe,
172
+ Kyle Daigle, GitHub platform engineering manager, explained that the company...","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fthenewstack.io\u00252Fgithub-dumps-rest-graphql-api\u00252F&h=hAQF4ktMg&s=1&enc=AZOvjV-V02X10LOlHg6bfhvkKJS3eNlDRiWfjQd7smyHGU-xKSQkLb7ihvrqfJKBOwFm8EGrJ2A6sMRV13fHFSs1","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQC5HLw3s46cLqn7&w=720&h=720&url=http\u00253A\u00252F\u00252Fthenewstack.io\u00252Fwp-content\u00252Fuploads\u00252F2016\u00252F09\u00252FGHU-GraphQL-Woah.jpg&cfs=1&sx=0&sy=0&sw=2448&sh=2448","width":720}}}]}},{"name":"Taking
173
+ PHP Seriously","message":"https:\/\/m.facebook.com\/story.php?story_fbid=1098448240203391&id=100001146751327","updated_time":"2016-10-13T18:17:23+0000","created_time":"2016-10-13T17:15:20+0000","id":"150352985174571_521137638096102","attachments":{"data":[{"title":"Taking
174
+ PHP Seriously","description":"by Keith Adams, Slack Engineering","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fslack.engineering\u00252Ftaking-php-seriously-cf7a60065329\u002523.g3w9ecf66&h=BAQG0cS8U&s=1&enc=AZM1GXdTFyjTS1jREYYZVdRCCtWbkFebSfKRM8s7AS--vxwzD85CWRj9vRlwvT9AfVLRLBHWgP6fMfKQUDeSK-79","media":{"image":{"height":669,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQCmbxAdG46sLBUD&w=720&h=720&url=https\u00253A\u00252F\u00252Fd262ilb51hltx0.cloudfront.net\u00252Fmax\u00252F1200\u00252F1\u00252Ax5N8tfTVEmQro2ySxoZtvw.jpeg&cfs=1","width":669}}}]}},{"name":"How
175
+ To Save The Princess In 8 Programming Languages","updated_time":"2016-10-06T08:39:47+0000","created_time":"2016-10-06T08:28:40+0000","id":"150352985174571_518029841740215","attachments":{"data":[{"title":"How
176
+ To Save The Princess In 8 Programming Languages","description":"Programming
177
+ sucks. This fairytale comic shows the different ways in which programming
178
+ languages could fail you in the fantasy kingdom.","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Ftoggl.com\u00252Fprogramming-princess&h=5AQFsUouS&s=1&enc=AZPrKaWN15ye9EVEggtrvz1Sd1LqnFmq8gb4WmgBjO0fCKm5M43dd6loNgUsEA5siZXwqfxuH7KLJUmtTbrlNFyT","media":{"image":{"height":630,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQDEZQJwFjW82Fzm&w=720&h=720&url=https\u00253A\u00252F\u00252Ftoggl.com\u00252Fimages\u00252Fshare-img\u00252Ffb-share-git-princess.jpg&cfs=1","width":630}}}]}},{"name":"Guess
179
+ the Programming Language | Tutorialzine","message":"A little quiz to keep
180
+ you sharp on programming trends.","updated_time":"2016-10-06T06:51:44+0000","created_time":"2016-10-04T02:21:25+0000","id":"150352985174571_517105121832687","attachments":{"data":[{"title":"Guess
234
181
  the Programming Language | Tutorialzine","description":"Can you tell Java
235
182
  from JavaScript? Awesome! So you are ready to take our ultimate programming
236
- challenge.","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Ftutorialzine.com\u00252F2014\u00252F06\u00252Fguess-the-programming-language\u00252F&h=EAQG17mA8&s=1&enc=AZMbCMgTVaXlmPRdfXOtJgfx4HDjV6QJli4PSM5rQUZBi4jJa5JSzWOdQ_XO8YT4Ut4ZvtJu1oyD5IpfaAjPxEbN","media":{"image":{"height":490,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQB9saA-D40lNQqm&w=720&h=720&url=http\u00253A\u00252F\u00252Fcdn.tutorialzine.com\u00252Fwp-content\u00252Fuploads\u00252F2014\u00252F06\u00252Fguess-the-programming-language.jpg&cfs=1","width":490}}}]},"id":"150352985174571_517105121832687"}'
183
+ challenge.","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Ftutorialzine.com\u00252F2014\u00252F06\u00252Fguess-the-programming-language\u00252F&h=mAQEBBe4q&s=1&enc=AZPwjwOZNu48jFuNtuRbhHleXPsANVHFR__PjWI0EwBdYoaEgOzRaSnDJ_gMIqydRjz5A3wWomdj3AbjUQPODvs6","media":{"image":{"height":490,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQB9saA-D40lNQqm&w=720&h=720&url=http\u00253A\u00252F\u00252Fcdn.tutorialzine.com\u00252Fwp-content\u00252Fuploads\u00252F2014\u00252F06\u00252Fguess-the-programming-language.jpg&cfs=1","width":490}}}]}},{"name":"How
184
+ it feels to learn JavaScript in 2016","updated_time":"2016-10-06T01:18:12+0000","created_time":"2016-10-05T13:47:43+0000","id":"150352985174571_517701838439682","attachments":{"data":[{"title":"How
185
+ it feels to learn JavaScript in 2016","description":"Edit: Thanks for pointing
186
+ typos and mistakes, I\u2019ll update the article as noted. Discussion in HackerNews
187
+ and Reddit.","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fhackernoon.com\u00252Fhow-it-feels-to-learn-javascript-in-2016-d3a717dd577f\u002523.m0lkkfan1&h=BAQG0cS8U&s=1&enc=AZMMY58mGJxdf2Lt9ePLZUZTh6zQEMpK5ozpJt6QYwjgqBm7_BT6H6bzmvw_ZE_dm0WNuF-GWLvDxUp5BUIbnfnA","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQBw5xIxnMhHtpnj&w=720&h=720&url=https\u00253A\u00252F\u00252Fcdn-images-2.medium.com\u00252Fmax\u00252F1200\u00252F1\u00252AraWO3dhM4jMjf9VY-kZzNg.png&cfs=1","width":720}}}]}},{"name":"5
188
+ emerging programming languages with a bright future","message":"Up and coming
189
+ languages worth keeping our eyes on. I''m already a huge fan of Crystal and
190
+ Rust, but the author has convinced me to pay more attention to Kotlin and
191
+ Elm.","updated_time":"2016-09-22T08:12:35+0000","created_time":"2016-09-21T10:13:58+0000","id":"150352985174571_511894255687107","attachments":{"data":[{"title":"5
192
+ emerging programming languages with a bright future","description":"Get the
193
+ elevator pitch for five of the most promising languages (some of them you
194
+ probably haven''t heard of before) that have the potential to grow...","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Ftechbeacon.com\u00252F5-emerging-programming-languages-bright-future\u00253Futm_content\u00253Dbuffer300a1\u002526utm_medium\u00253Dsocial\u002526utm_source\u00253Dtwitter.com\u002526utm_campaign\u00253Dbuffer&h=vAQHNS2qk&s=1&enc=AZO45ARf2y0u46Ar85B5gKTxKR8vGYtyi5KKxupNg3fyLcnJMmWgYhdHkuMrO0sKh4kfr2ri34q7xmd-w2QHD3r9","media":{"image":{"height":480,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQAxbtCPHht3vWb6&w=720&h=720&url=http\u00253A\u00252F\u00252Ftechbeacon.com\u00252Fsites\u00252Fdefault\u00252Ffiles\u00252Fstyles\u00252Fsocial\u00252Fpublic\u00252Ffield\u00252Fimage\u00252F5_emerging_programming_languages_with_a_bright_future.jpg\u00253Fitok\u00253Dm0nlEinF&cfs=1","width":480}}}]}},{"name":"A
195
+ whole new Universe","message":"I can''t even wrap my head around all the new
196
+ features Github just released: code reviews, kanban boards, and much more.","updated_time":"2016-09-19T09:14:51+0000","created_time":"2016-09-15T03:42:48+0000","id":"150352985174571_509461352597064","attachments":{"data":[{"title":"A
197
+ whole new Universe","description":"Learn about the exciting features and announcements
198
+ revealed at this year\u2019s annual GitHub Universe conference at historic
199
+ Pier 70 in San Francisco.","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fgithub.com\u00252Funiverse-2016&h=wAQFtCCu_&s=1&enc=AZNx4_SWcOjqcsL7AqObZgRL-woA8Nc-V2JhxJE5ieuaaDXncQEEow62klPtrA81jV2nOcBTwuRk_QzvuuQJbkNr","media":{"image":{"height":630,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQBsb70KV75vMJ8B&w=720&h=720&url=https\u00253A\u00252F\u00252Fassets-cdn.github.com\u00252Fimages\u00252Fmodules\u00252Funiverse-2016\u00252Funiverse-open-graph.png&cfs=1","width":630}}}]}},{"name":"Vert.x","message":"http:\/\/vertx.io\/","updated_time":"2016-09-13T20:34:39+0000","created_time":"2016-09-13T20:34:39+0000","id":"150352985174571_508953969314469","attachments":{"data":[{"title":"Vert.x","description":"Vert.x
200
+ is a tool-kit for building reactive applications on the JVM.","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fvertx.io\u00252F&h=XAQF4xInv&s=1&enc=AZOcAIpC3h-MF8YDY_8qplPFjEOu4ES9cV5IZMTk22kuHn6vLD7lgky_NWSxTQEJ30a740ivovHXNmni8mMuHGmS","media":{"image":{"height":360,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQC13D8UqDGMX5IF&w=720&h=720&url=http\u00253A\u00252F\u00252Fvertx.io\u00252Fassets\u00252Fuser_logos\u00252Fswisscom.png&cfs=1","width":360}}}]}},{"name":"Codecademy","updated_time":"2016-09-13T02:04:20+0000","created_time":"2016-09-13T02:04:20+0000","id":"150352985174571_508631766013356","attachments":{"data":[{"title":"Timeline
201
+ Photos","description":"Are you a Javascript guru? Then you should check out
202
+ our course in React.js!\n\nReact enables websites to display complex animations,
203
+ large volumes of data, or other memory-heavy tasks without slowing down. At
204
+ the end of the course, you\u2019ll know how to build sophisticated React applications.
205
+ Check it out!\n\nhttp:\/\/codecademy.io\/YRFS3047CDf","url":"https:\/\/www.facebook.com\/codecademy\/photos\/a.553205214692855.138303.272256069454439\/1387442691269099\/?type=3","media":{"image":{"height":377,"src":"https:\/\/scontent.xx.fbcdn.net\/v\/t1.0-9\/s720x720\/14264951_1387442691269099_7557697962736020966_n.png?oh=1c67604ccd5679d98c72100f943f3863&oe=5891713F","width":720}}}]}}],"paging":{"previous":"https:\/\/graph.facebook.com\/v2.6\/150352985174571\/feed?fields=name,message,updated_time,created_time,attachments\u00257Btitle,description,url,media\u00257D&since=1477620579&access_token=<ACCESS_TOKEN>&limit=25&__paging_token=enc_AdAchevYgL0m5xCIn76hqJ3aBASZBLnnBkHzYtokZBey5PDaQuxdVxZBDfJm2ifeekq5qoALQ6ZA4IMrAhmfWQ5dqvhVBMLvnbwrEWU90LoviZCxtZBgZDZD&__previous=1","next":"https:\/\/graph.facebook.com\/v2.6\/150352985174571\/feed?fields=name,message,updated_time,created_time,attachments\u00257Btitle,description,url,media\u00257D&access_token=<ACCESS_TOKEN>&limit=25&until=1473732260&__paging_token=enc_AdA5yvCYKggN5gwcOMpKsofaKTcjoBDhX09ctf67EExuFDAc0wxCiNzAyIGndHrMAZCrp9QmVKgQaJrU3U5ORbHEtw7NHfA9kZAKWKz6jUvEBtYAZDZD"}}}'
237
206
  http_version:
238
- recorded_at: Sun, 23 Oct 2016 23:07:42 GMT
207
+ recorded_at: Fri, 04 Nov 2016 05:50:43 GMT
239
208
  - request:
240
209
  method: get
241
- uri: https://graph.facebook.com/150352985174571?access_token=<ACCESS_TOKEN_ESCAPED>&fields=id,name,feed%7Bname,message,updated_time,created_time,attachments%7Btitle,description,url,media%7D%7D
210
+ uri: https://graph.facebook.com/150352985174571_517105121832687?access_token=<ACCESS_TOKEN_ESCAPED>&fields=name,message,updated_time,created_time,attachments%7Btitle,description,url,media%7D
242
211
  body:
243
212
  encoding: US-ASCII
244
213
  string: ''
@@ -257,7 +226,7 @@ http_interactions:
257
226
  Access-Control-Allow-Origin:
258
227
  - "*"
259
228
  Etag:
260
- - '"c58790af4ab167d092653e0464c0d18d4dd89bfc"'
229
+ - '"7a7d3efabfb7deb67979705e1f58992a0d6eb526"'
261
230
  Pragma:
262
231
  - no-cache
263
232
  Cache-Control:
@@ -269,167 +238,29 @@ http_interactions:
269
238
  Content-Type:
270
239
  - text/javascript; charset=UTF-8
271
240
  X-Fb-Trace-Id:
272
- - FZ5Ru+ZtnrN
241
+ - Hg8s20weOcB
273
242
  X-Fb-Rev:
274
- - '2645472'
243
+ - '2663233'
275
244
  Vary:
276
245
  - Accept-Encoding
277
246
  X-Fb-Debug:
278
- - kibcAx4afUXGvnHzx5xF+mXlRXVPDofCe6w06LeU2QySJkvg1LM5HwFPybrgYKEwiwE3ndWa7Bq2aKfRTRgGwg==
247
+ - NwGANzCO7IKQk0rTHKBosG9gELd61RUFshBtKny+LQmZ3tnZqypuh6IuS7QbptdUWXzN0aQoMlY9VI7vT8DsUA==
279
248
  Date:
280
- - Wed, 26 Oct 2016 16:55:01 GMT
249
+ - Fri, 04 Nov 2016 05:50:44 GMT
281
250
  Connection:
282
251
  - close
283
252
  body:
284
253
  encoding: UTF-8
285
- string: '{"id":"150352985174571","name":"Web Service Development \u0040 NTHU","feed":{"data":[{"name":"GitHub
286
- Dumps REST Calls for Facebook''s GraphQL - The New Stack","message":"Github''s
287
- adoption of GraphQL for APIs, over RESTful services, might be the tipping
288
- point that makes GraphQL ubiquitous. From what little exposure I have to it
289
- (thanks to YenTing and Yen-Nan at Cardinal Blue), it seems we are taking the
290
- complexity and burden of APIs away from API consumers, and putting it squarely
291
- at the feet of API providers. That means using APIs is about to become significantly
292
- easier (albeit more deeply nested) for everyone! But it also means that creating
293
- APIs is about to become significantly harder. Read more about the big shift
294
- at Github.","updated_time":"2016-10-20T08:29:06+0000","created_time":"2016-10-20T05:45:32+0000","id":"150352985174571_524070464469486","attachments":{"data":[{"title":"GitHub
295
- Dumps REST Calls for Facebook''s GraphQL - The New Stack","description":"Hoping
296
- to streamline the remote querying services of its site, GitHub is moving its
297
- API (application programming interface) from REST calls to Facebook\u2019s
298
- GraphQL API. In the company\u2019s recent user conference GitHub Universe,
299
- Kyle Daigle, GitHub platform engineering manager, explained that the company...","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fthenewstack.io\u00252Fgithub-dumps-rest-graphql-api\u00252F&h=BAQEQpLDV&s=1&enc=AZMuArWJ2KbXcSfRLOLzlCxKphl_vQiF53WL06dX7ibSzpbcnv7ZFv0F5oWb3es83oDIZlhZIdep6q9x7QtH0RHC","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQC5HLw3s46cLqn7&w=720&h=720&url=http\u00253A\u00252F\u00252Fthenewstack.io\u00252Fwp-content\u00252Fuploads\u00252F2016\u00252F09\u00252FGHU-GraphQL-Woah.jpg&cfs=1&sx=0&sy=0&sw=2448&sh=2448","width":720}}}]}},{"name":"Taking
300
- PHP Seriously","message":"https:\/\/m.facebook.com\/story.php?story_fbid=1098448240203391&id=100001146751327","updated_time":"2016-10-13T18:17:23+0000","created_time":"2016-10-13T17:15:20+0000","id":"150352985174571_521137638096102","attachments":{"data":[{"title":"Taking
301
- PHP Seriously","description":"by Keith Adams, Slack Engineering","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fslack.engineering\u00252Ftaking-php-seriously-cf7a60065329\u002523.g3w9ecf66&h=iAQHfhNKM&s=1&enc=AZM86DcXm5yXd89ntvD7fgR76vW9E2_kSIUkmhk0VInOMk4wK27Dyf7xy4a6Zr6xW4NK33_piBLoGBbEGayZSN4i","media":{"image":{"height":669,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQCmbxAdG46sLBUD&w=720&h=720&url=https\u00253A\u00252F\u00252Fd262ilb51hltx0.cloudfront.net\u00252Fmax\u00252F1200\u00252F1\u00252Ax5N8tfTVEmQro2ySxoZtvw.jpeg&cfs=1","width":669}}}]}},{"name":"How
302
- To Save The Princess In 8 Programming Languages","updated_time":"2016-10-06T08:39:47+0000","created_time":"2016-10-06T08:28:40+0000","id":"150352985174571_518029841740215","attachments":{"data":[{"title":"How
303
- To Save The Princess In 8 Programming Languages","description":"Programming
304
- sucks. This fairytale comic shows the different ways in which programming
305
- languages could fail you in the fantasy kingdom.","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Ftoggl.com\u00252Fprogramming-princess&h=xAQHF7IZn&s=1&enc=AZPT2sBsY0_DCenaNCG_BsPV45iIqV-JSMdaenUQX9sLpkaCZUrI8bYCB_WCP9DfKd5pyT8G_Eo8MqfFVVixpLOy","media":{"image":{"height":630,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQDEZQJwFjW82Fzm&w=720&h=720&url=https\u00253A\u00252F\u00252Ftoggl.com\u00252Fimages\u00252Fshare-img\u00252Ffb-share-git-princess.jpg&cfs=1","width":630}}}]}},{"name":"Guess
306
- the Programming Language | Tutorialzine","message":"A little quiz to keep
307
- you sharp on programming trends.","updated_time":"2016-10-06T06:51:44+0000","created_time":"2016-10-04T02:21:25+0000","id":"150352985174571_517105121832687","attachments":{"data":[{"title":"Guess
254
+ string: '{"name":"Guess the Programming Language | Tutorialzine","message":"A
255
+ little quiz to keep you sharp on programming trends.","updated_time":"2016-10-06T06:51:44+0000","created_time":"2016-10-04T02:21:25+0000","attachments":{"data":[{"title":"Guess
308
256
  the Programming Language | Tutorialzine","description":"Can you tell Java
309
257
  from JavaScript? Awesome! So you are ready to take our ultimate programming
310
- challenge.","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Ftutorialzine.com\u00252F2014\u00252F06\u00252Fguess-the-programming-language\u00252F&h=LAQEkOXZt&s=1&enc=AZMwy0_l76RdgXTvZYCA_-LDh6wwKyQm_HeESA58uK3dKtL1ETBCbO-JxKnW_52pBV5hPL2FST_QAlnc9eJGTTl1","media":{"image":{"height":490,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQB9saA-D40lNQqm&w=720&h=720&url=http\u00253A\u00252F\u00252Fcdn.tutorialzine.com\u00252Fwp-content\u00252Fuploads\u00252F2014\u00252F06\u00252Fguess-the-programming-language.jpg&cfs=1","width":490}}}]}},{"name":"How
311
- it feels to learn JavaScript in 2016","updated_time":"2016-10-06T01:18:12+0000","created_time":"2016-10-05T13:47:43+0000","id":"150352985174571_517701838439682","attachments":{"data":[{"title":"How
312
- it feels to learn JavaScript in 2016","description":"Edit: Thanks for pointing
313
- typos and mistakes, I\u2019ll update the article as noted. Discussion in HackerNews
314
- and Reddit.","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fhackernoon.com\u00252Fhow-it-feels-to-learn-javascript-in-2016-d3a717dd577f\u002523.m0lkkfan1&h=QAQEDlt5e&s=1&enc=AZNZnAvj_3Bk3oJBTr7wncI4YR8UhkRSoZ6HTh-bmZxJx6hJRqXSMVKzrx34z8Oya5XWUXoPFbgEsrgL65--5HjH","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQBw5xIxnMhHtpnj&w=720&h=720&url=https\u00253A\u00252F\u00252Fcdn-images-2.medium.com\u00252Fmax\u00252F1200\u00252F1\u00252AraWO3dhM4jMjf9VY-kZzNg.png&cfs=1","width":720}}}]}},{"name":"5
315
- emerging programming languages with a bright future","message":"Up and coming
316
- languages worth keeping our eyes on. I''m already a huge fan of Crystal and
317
- Rust, but the author has convinced me to pay more attention to Kotlin and
318
- Elm.","updated_time":"2016-09-22T08:12:35+0000","created_time":"2016-09-21T10:13:58+0000","id":"150352985174571_511894255687107","attachments":{"data":[{"title":"5
319
- emerging programming languages with a bright future","description":"Get the
320
- elevator pitch for five of the most promising languages (some of them you
321
- probably haven''t heard of before) that have the potential to grow...","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Ftechbeacon.com\u00252F5-emerging-programming-languages-bright-future\u00253Futm_content\u00253Dbuffer300a1\u002526utm_medium\u00253Dsocial\u002526utm_source\u00253Dtwitter.com\u002526utm_campaign\u00253Dbuffer&h=uAQFyfQhv&s=1&enc=AZPPipsXORfRYPLey-fYNR2-DtHJyKFaX3lKEaDXueH0xC2gj4KC4thpju0QmHEIsRNuSRJKhU54j7OdidNPY7gt","media":{"image":{"height":480,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQAxbtCPHht3vWb6&w=720&h=720&url=http\u00253A\u00252F\u00252Ftechbeacon.com\u00252Fsites\u00252Fdefault\u00252Ffiles\u00252Fstyles\u00252Fsocial\u00252Fpublic\u00252Ffield\u00252Fimage\u00252F5_emerging_programming_languages_with_a_bright_future.jpg\u00253Fitok\u00253Dm0nlEinF&cfs=1","width":480}}}]}},{"name":"A
322
- whole new Universe","message":"I can''t even wrap my head around all the new
323
- features Github just released: code reviews, kanban boards, and much more.","updated_time":"2016-09-19T09:14:51+0000","created_time":"2016-09-15T03:42:48+0000","id":"150352985174571_509461352597064","attachments":{"data":[{"title":"A
324
- whole new Universe","description":"Learn about the exciting features and announcements
325
- revealed at this year\u2019s annual GitHub Universe conference at historic
326
- Pier 70 in San Francisco.","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fgithub.com\u00252Funiverse-2016&h=tAQFB9sTO&s=1&enc=AZOBVuVkCbishkcMftzb_1w0o11p2yWlgRq0ymgoobnIQ7LBSEhyw0ZPOGUGtTMeP4ckJI8au40LE_wg2mfTEpJM","media":{"image":{"height":630,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQBsb70KV75vMJ8B&w=720&h=720&url=https\u00253A\u00252F\u00252Fassets-cdn.github.com\u00252Fimages\u00252Fmodules\u00252Funiverse-2016\u00252Funiverse-open-graph.png&cfs=1","width":630}}}]}},{"name":"Vert.x","message":"http:\/\/vertx.io\/","updated_time":"2016-09-13T20:34:39+0000","created_time":"2016-09-13T20:34:39+0000","id":"150352985174571_508953969314469","attachments":{"data":[{"title":"Vert.x","description":"Vert.x
327
- is a tool-kit for building reactive applications on the JVM.","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fvertx.io\u00252F&h=NAQG9A1a2&s=1&enc=AZNMqUZEGBqZsKGU8Mvb47om6xOazFfoiGZ6SG5mM2w4WUcCRAz_Xoc4X297eb9cPGZOOUAlODF1vjNHvRFtk7VP","media":{"image":{"height":360,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQC13D8UqDGMX5IF&w=720&h=720&url=http\u00253A\u00252F\u00252Fvertx.io\u00252Fassets\u00252Fuser_logos\u00252Fswisscom.png&cfs=1","width":360}}}]}},{"name":"Codecademy","updated_time":"2016-09-13T02:04:20+0000","created_time":"2016-09-13T02:04:20+0000","id":"150352985174571_508631766013356","attachments":{"data":[{"title":"Timeline
328
- Photos","description":"Are you a Javascript guru? Then you should check out
329
- our course in React.js!\n\nReact enables websites to display complex animations,
330
- large volumes of data, or other memory-heavy tasks without slowing down. At
331
- the end of the course, you\u2019ll know how to build sophisticated React applications.
332
- Check it out!\n\nhttp:\/\/codecademy.io\/YRFS3047CDf","url":"https:\/\/www.facebook.com\/codecademy\/photos\/a.553205214692855.138303.272256069454439\/1387442691269099\/?type=3","media":{"image":{"height":377,"src":"https:\/\/scontent.xx.fbcdn.net\/v\/t1.0-9\/s720x720\/14264951_1387442691269099_7557697962736020966_n.png?oh=1c67604ccd5679d98c72100f943f3863&oe=5891713F","width":720}}}]}},{"name":"Scaling
333
- Spinnaker at Netflix \u2014 The Basics","message":"https:\/\/medium.com\/\u0040ajordens\/scaling-spinnaker-at-netflix-part-1-8a5ae51ee6de#.fubo771g2","updated_time":"2016-09-11T09:14:53+0000","created_time":"2016-09-11T09:14:53+0000","id":"150352985174571_507894159420450","attachments":{"data":[{"title":"Scaling
334
- Spinnaker at Netflix \u2014 The Basics","description":"The Backstory","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fmedium.com\u00252F\u002540ajordens\u00252Fscaling-spinnaker-at-netflix-part-1-8a5ae51ee6de\u002523.fubo771g2&h=JAQFMAksP&s=1&enc=AZN8cMfGS70kFQMD1hLWtUjhjw8HlIyKOiVj7cS2uhzClW0FHaHPeLE27ZGsaqZweHyENAIoSFtv1rn50F8ypOZn","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQBS3PgL3uUEU1VC&w=720&h=720&url=https\u00253A\u00252F\u00252Fcdn-images-1.medium.com\u00252Fmax\u00252F1200\u00252F1\u00252AMrL6DHIxxY6CrL9Binpjjg.png&cfs=1","width":720}}}]}},{"name":"Design
335
- Stamina Hypothesis","message":"Why (and when) we need architecture.","updated_time":"2016-09-08T03:33:06+0000","created_time":"2015-09-24T11:12:32+0000","id":"150352985174571_390601061149761","attachments":{"data":[{"title":"Design
336
- Stamina Hypothesis","description":"The value of good software design is economic:
337
- you can continue to add new functionality quickly even as the code-base grows
338
- in size.","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fmartinfowler.com\u00252Fbliki\u00252FDesignStaminaHypothesis.html&h=0AQG-z_xt&s=1&enc=AZNUmjnZMfKYk--re8eXShm4XcF7MfNUMzhjWWgNxNhWj5nsnGYKiDkGYgy_x3xAeqV4EzzJ1d54Ncr2hrAp2yyB","media":{"image":{"height":329,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQB61p6nJsutcaQ4&w=720&h=720&url=http\u00253A\u00252F\u00252Fmartinfowler.com\u00252Fbliki\u00252Fimages\u00252FdesignStaminaGraph.gif&cfs=1","width":329}}}]}},{"name":"Git
339
- 2.10 has been released","updated_time":"2016-09-03T06:33:51+0000","created_time":"2016-09-03T05:23:56+0000","id":"150352985174571_504539303089269","attachments":{"data":[{"title":"Git
340
- 2.10 has been released","description":"The open source Git project has just
341
- released Git 2.10.0, with features and bugfixes from over 70 contributors.
342
- Here''s our look at some of the most interesting new features: Progress reporting
343
- for...","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fgithub.com\u00252Fblog\u00252F2242-git-2-10-has-been-released&h=mAQEUdhVr&s=1&enc=AZM2Nlce1FdCxZqMA9lcNbLvsiBOHCNhPbcAs_RPg-RJLTT8RC6yaEIIkJiR2HeBA9hKfT1uHYseL9UeDGJbDVgw","media":{"image":{"height":630,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQAMeAXoLqWgJ6YI&w=720&h=720&url=https\u00253A\u00252F\u00252Fcloud.githubusercontent.com\u00252Fassets\u00252F121322\u00252F16134794\u00252F284be2e6-33d4-11e6-9165-58068a872ec2.png&cfs=1","width":630}}}]}},{"name":"The
344
- target=\"_blank\" vulnerability by example","message":"https:\/\/dev.to\/ben\/the-targetblank-vulnerability-by-example","updated_time":"2016-09-02T17:50:31+0000","created_time":"2016-09-01T12:49:45+0000","id":"150352985174571_503746883168511","attachments":{"data":[{"title":"The
345
- target=\"_blank\" vulnerability by example","description":"Instagram leaves
346
- its users open to a simple phishing attack","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fdev.to\u00252Fben\u00252Fthe-targetblank-vulnerability-by-example&h=IAQEu0Wpp&s=1&enc=AZM1YhiXcj8XpQPFdfpu7mf9bTE4LLGdCzkClL9UFKGPCUtKQvoLOhFYJeOODS1TYI_KQTgNtO0TPqb-N8OB4rri","media":{"image":{"height":700,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQCuBI-PnC7cvAsc&w=720&h=720&url=https\u00253A\u00252F\u00252Fres.cloudinary.com\u00252Fpracticaldev\u00252Fimage\u00252Ffetch\u00252Fs--AGTf6Osi--\u00252Fc_imagga_scale\u00252Cf_auto\u00252Cfl_progressive\u00252Ch_700\u00252Cq_auto\u00252Cw_1480\u00252Fhttps\u00253A\u00252F\u00252Fi.vimeocdn.com\u00252Fvideo\u00252F570148251_1280x720.jpg&cfs=1","width":700}}}]}},{"name":"Katacoda
347
- - Interactive Learning Platform for Software Engineers","message":"just discovered
348
- this .... looks nice","updated_time":"2016-08-26T02:34:28+0000","created_time":"2016-08-26T02:34:28+0000","id":"150352985174571_500972406779292","attachments":{"data":[{"title":"Katacoda
349
- - Interactive Learning Platform for Software Engineers","description":"Learn
350
- the latest technologies with our hands-on labs","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fwww.katacoda.com\u00252F&h=gAQGgvDrK&s=1&enc=AZO8tyGR0zvrmvuubnDQxdYafyIe6JOndG1LAgevgQwvWQhJipw-l1QD41kaGzZCX7AYMeYr8vvuSMhDFViJMJTA","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQBt33FvO3-PQ4vI&w=720&h=720&url=https\u00253A\u00252F\u00252Fwww.katacoda.com\u00252Fimages\u00252Fbackgrounds\u00252Fpeople-working.jpg&cfs=1","width":720}}}]}},{"name":"Let''s
351
- Encrypt - Wikipedia, the free encyclopedia","message":"No reason not to use
352
- https for your web services: apart from the good old https:\/\/www.startssl.com,
353
- now we have https:\/\/letsencrypt.org which makes getting, installing and
354
- keeping a cert up to date easier. Plus its backed by many big guns and its
355
- FREE! Here is the wikipedia article about it: https:\/\/en.m.wikipedia.org\/wiki\/Let\u002527s_Encrypt.
356
- Just remember its pretty new and do read about how the certs are signed and
357
- accepted by browser\/clients.","updated_time":"2016-08-22T00:55:29+0000","created_time":"2016-08-21T09:50:36+0000","id":"150352985174571_499005640309302","attachments":{"data":[{"title":"Let''s
358
- Encrypt - Wikipedia, the free encyclopedia","description":"Let''s Encrypt
359
- is a certificate authority that launched on April 12, 2016[1][2] that provides
360
- free X.509 certificates for Transport Layer Security (TLS) encryption via
361
- an automated process designed to eliminate the current complex process of
362
- manual creation, validation, signing, installation, and ren...","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fen.m.wikipedia.org\u00252Fwiki\u00252FLet\u00252527s_Encrypt&h=UAQEsc6jt&s=1&enc=AZM_UTQXQVgR8rG92TmW3SDNSGrD_wjveMtir-Qhm5OmLDpMYtKf_Y26_qZj3hPWfeUSIeaRfMAIs7Nh4qTCsISj","media":{"image":{"height":131,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQApCjwHGpTUJRSa&w=720&h=720&url=https\u00253A\u00252F\u00252Fupload.wikimedia.org\u00252Fwikipedia\u00252Fcommons\u00252Fthumb\u00252Fb\u00252Fbb\u00252FLetsencrypt_screenshot_2_domain_choice.png\u00252F220px-Letsencrypt_screenshot_2_domain_choice.png&cfs=1","width":131}}}]}},{"name":"Google''s
363
- QUIC protocol: moving the web from TCP to UDP","message":"A speedier web?
364
- Yes thank you!\n\n","updated_time":"2016-08-02T04:40:01+0000","created_time":"2016-08-01T13:53:37+0000","id":"150352985174571_491254161084450","attachments":{"data":[{"title":"Google''s
365
- QUIC protocol: moving the web from TCP to UDP","description":"The QUIC protocol
366
- (Quick UDP Internet Connections) is an entirely new protocol for the web developed
367
- on top of UDP instead of TCP. Some are even (jokingly) calling it TCP\/2.
368
- I only learned about QUIC a few weeks ago while doing the curl & libcurl episode
369
- of the SysCast podcast. The really interestin...","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fma.ttias.be\u00252Fgoogles-quic-protocol-moving-web-tcp-udp\u00252F&h=RAQEYDKxw&s=1&enc=AZP9Z_8QG5GRdtFg3COWEvE_fKFa_5C_4uapMolCcDn03knEr_VyTQ6eYagFgcMlcCYeT9_AkazP6POeQp4-TQ-D","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQAAP49rj-fnvioY&w=720&h=720&url=https\u00253A\u00252F\u00252Fma.ttias.be\u00252Fwp-content\u00252Fuploads\u00252F2016\u00252F07\u00252Fquic_parking_lot_problem.png&cfs=1","width":720}}}]}},{"name":"Introducing
370
- GitKraken Pro\u2014launch fundraiser | Axosoft","message":"https:\/\/blog.axosoft.com\/2016\/07\/28\/introducing-gitkraken-pro\/","updated_time":"2016-07-30T17:51:41+0000","created_time":"2016-07-30T17:51:41+0000","id":"150352985174571_490544944488705","attachments":{"data":[{"title":"Introducing
371
- GitKraken Pro\u2014launch fundraiser | Axosoft","description":"Learn about
372
- the new edition of GitKraken, with even more features, and help raise money
373
- and awareness for the Nightscout Foundation, an open source technology project
374
- helping those affected by Type 1 diabetes!","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fblog.axosoft.com\u00252F2016\u00252F07\u00252F28\u00252Fintroducing-gitkraken-pro\u00252F&h=-AQGdbSSK&s=1&enc=AZObEliJjBtfhK10s4RiR5iBlC-6SMim829br3ueBzfbGoXdCL8qPW4CoJehnCwXMMNZNVETuh9Z6VRa03419JQe","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQCiRe3ytesqyg6K&w=720&h=720&url=https\u00253A\u00252F\u00252Fblog.axosoft.com\u00252Fwp-content\u00252Fuploads\u00252F2016\u00252F07\u00252FTeaming-Up-v2-wide.png&cfs=1&l","width":720}}}]}},{"name":"Create
375
- Apps with No Configuration | React","message":"For those using React, although
376
- optional webpack loaders (such as sass) still need to be added!","updated_time":"2016-07-23T10:41:04+0000","created_time":"2016-07-23T09:55:25+0000","id":"150352985174571_487752758101257","attachments":{"data":[{"title":"Create
377
- Apps with No Configuration | React","description":"A JavaScript library for
378
- building user interfaces","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Ffacebook.github.io\u00252Freact\u00252Fblog\u00252F2016\u00252F07\u00252F22\u00252Fcreate-apps-with-no-configuration.html&h=SAQGKLveJ&s=1&enc=AZOlJy-fVHd34g9NyWLYYsTJpqe2aQbZ_bRA_AKxQseOOOfm_HqT-dVVj3S01WZD83FUx9vIZKxqGudVGMoWJMcO","media":{"image":{"height":400,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQC26d6oRyFdqvxX&w=720&h=720&url=https\u00253A\u00252F\u00252Ffacebook.github.io\u00252Freact\u00252Fimg\u00252Flogo_og.png&cfs=1","width":400}}}]}},{"name":"introduction\u00b6
379
- Lettuce is an extremely useful and charming tool for BDD (Behavior Driven...
380
- -...","message":"Test scenarios that anyone can make sense of","updated_time":"2016-07-22T11:46:59+0000","created_time":"2016-07-22T06:28:02+0000","id":"150352985174571_487315358144997","attachments":{"data":[{"title":"introduction\u00b6
381
- Lettuce is an extremely useful and charming tool for BDD (Behavior Driven...
382
- -...","description":"Lettuce is an extremely useful and charming tool for
383
- BDD (Behavior Driven Development). It can execute plain-text functional descriptions
384
- as automated tests for Python projects, just as Cucumber does for Ruby.","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Flettuce.it\u00252Ftutorial\u00252Fsimple.html\u002523tutorial-simple&h=FAQGWhi_V&s=1&enc=AZOq0vipkT-2BJL5l3L3gnoDQjRA65yMpzPp0_61d1mOR75X8PJIY0SbXH7cbIzYIrb9A6Y1Eym-eFNN_oFHxZHc","media":{"image":{"height":687,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQDL7gIjkOiwMbE7&w=720&h=720&url=http\u00253A\u00252F\u00252Flettuce.it\u00252F_images\u00252Fscreenshot5.png&cfs=1","width":687}}}]}},{"message":"Check
385
- out: https:\/\/www.websequencediagrams.com \u2014 fun and friendly way to
386
- create sequence diagrams for web and mobile activities. I usually end up drawing
387
- these on paper or on the board. I think it will be quite engaging to play
388
- with this live!","updated_time":"2016-07-21T02:25:49+0000","created_time":"2016-07-20T03:59:51+0000","id":"150352985174571_486566974886502","attachments":{"data":[{"description":"Check
389
- out: https:\/\/www.websequencediagrams.com \u2014 fun and friendly way to
390
- create sequence diagrams for web and mobile activities. I usually end up drawing
391
- these on paper or on the board. I think it will be quite engaging to play
392
- with this live!","url":"https:\/\/www.facebook.com\/photo.php?fbid=1058362510919499&set=gm.486566974886502&type=3","media":{"image":{"height":392,"src":"https:\/\/scontent.xx.fbcdn.net\/v\/t1.0-9\/s720x720\/13680904_1058362510919499_8542835077177246391_n.jpg?oh=e23aa643f32eb9665e3c8ba8a43c01ca&oe=58A0A9E7","width":720}}}]}},{"name":"Dropbox
393
- open-sources Lepton, a compression algorithm that cuts JPEG file size by 22\u0025","message":"http:\/\/venturebeat.com\/2016\/07\/14\/dropbox-open-sources-lepton-a-compression-algorithm-that-cuts-jpeg-file-size-by-22\/","updated_time":"2016-07-15T05:52:51+0000","created_time":"2016-07-14T19:37:54+0000","id":"150352985174571_484513371758529","attachments":{"data":[{"title":"Dropbox
394
- open-sources Lepton, a compression algorithm that cuts JPEG file size by 22\u0025","description":"Cloud
395
- syncing and sharing software company Dropbox today announced that it has released
396
- an image compression algorithm called Lepton under an Apache open-source license
397
- on GitHub.","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fventurebeat.com\u00252F2016\u00252F07\u00252F14\u00252Fdropbox-open-sources-lepton-a-compression-algorithm-that-cuts-jpeg-file-size-by-22\u00252F&h=sAQF-3I4t&s=1&enc=AZOQ0oWoyWXC28pwOZKXN3iktksoqx8dUur7jMWbCIKaR6cksX2Qe9JA3FM0wf5PpeckJ2DsRy5cAinoAjQYzMjs","media":{"image":{"height":585,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQCBxul8ygkf06Je&w=720&h=720&url=https\u00253A\u00252F\u00252Fventurebeat.com\u00252Fwp-content\u00252Fuploads\u00252F2015\u00252F11\u00252FDropbox-Open-outside-Novet-780x585.jpg&cfs=1","width":585}}}]}},{"name":"Serverless
398
- Architectures","message":"\"Serverless\" is the new sensation in service architecture,
399
- and it integrates the recent trends of microservices and reactive (message-driven)
400
- architectures. We will play with some of these concepts in our SOA class this
401
- coming semester. Take a peek at what''s brewing.\nhttp:\/\/martinfowler.com\/articles\/serverless.html","updated_time":"2016-07-14T19:01:17+0000","created_time":"2016-07-14T12:16:33+0000","id":"150352985174571_484366188439914","attachments":{"data":[{"title":"Serverless
402
- Architectures","description":"Serverless architectures replace a managed server
403
- with a collection of third party services and FaaS","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fmartinfowler.com\u00252Farticles\u00252Fserverless.html\u002523benefits&h=DAQGWi2PV&s=1&enc=AZNAoJheX5WJrmUW4OCNaTUIc4YiLww-HP2jwr0Fk74_-rFwauuk_uHb3HGuJ5GbDlDf6qwbQ8la4ud3WhnnyQ1E","media":{"image":{"height":300,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQCGBUsGoj1TcRRD&w=720&h=720&url=http\u00253A\u00252F\u00252Fmartinfowler.com\u00252Farticles\u00252Fserverless\u00252Fsps.png&cfs=1","width":300}}}]}},{"name":"Pokemon
404
- Go Is Driving Insane Amounts of Sales at Small Local Businesses. Here''s How
405
- It Works","message":"I''m shocked at how Pok\u00e9mon Go is taking over our
406
- streets (very soon in TW, right?). And now its having a major effect on local
407
- businesses as well. Great example of how an online service can transform offline
408
- ones.","updated_time":"2016-07-13T09:36:32+0000","created_time":"2016-07-13T02:42:08+0000","id":"150352985174571_483847351825131","attachments":{"data":[{"title":"Pokemon
409
- Go Is Driving Insane Amounts of Sales at Small Local Businesses. Here''s How
410
- It Works","description":"For $1.19 an hour, you can have more customers than
411
- you''ve ever seen in your life","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fwww.inc.com\u00252Fwalter-chen\u00252Fpok-mon-go-is-driving-insane-amounts-of-sales-at-small-local-businesses-here-s-h.html&h=uAQFyfQhv&s=1&enc=AZOtxYNAgRl3Cg6Q57ZG8oEK4xyUD-iFIl_lCmF2j6fx8x6eavOzKa2TsTtKntTwOVJCI03O4rkbQjD5BZhvq7vC","media":{"image":{"height":450,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQCDr9LKzFIQfJFh&w=720&h=720&url=http\u00253A\u00252F\u00252Fwww.incimages.com\u00252Fuploaded_files\u00252Fimage\u00252F970x450\u00252FPokemon_Heroes_2003_03-cc_100058.jpg&cfs=1","width":450}}}]}},{"name":"SOA
412
- Syllabus","message":"The syllabus for next semester''s \"Service Oriented
413
- Architecture\" class is now online! Take a look and share it with your coder
414
- friends who are dreaming of their first startup :)","updated_time":"2016-07-04T11:18:26+0000","created_time":"2016-07-04T06:48:44+0000","id":"150352985174571_480686308807902","attachments":{"data":[{"title":"SOA
415
- Syllabus","description":"Institute of Service Science, National Tsing Hua
416
- University\u000bService Oriented Architecture\u000bFall 2016 Course Duration:
417
- Sep 2015 \u2013 Jan 2016\u000bClass Time: Mondays, 9:00am-12:00pm\u000b Instructor:
418
- Soumya Ray (soumya.ray\u0040iss.nthu.edu.tw)\u000bAssistant: TBA (\u0040...
419
- available on Slack) How do companies lik...","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fbit.ly\u00252Fsoa-syllabus&h=lAQHeaX5S&s=1&enc=AZOd1y20GsGnL0v_gYWTrIDCJTY48jbyWj5B_7GB44-LsJGadlpHaIcmAxZ1uaL6qj1dEJ5ixc_BFTASTj74mrfs"}]}},{"name":"Mongolia
420
- is changing all its addresses to three-word phrases","message":"A plucky little
421
- online startup is changing how we address and locate geographic places. The
422
- story below shows how countries and international organizations are adopting
423
- this method. Take a look at https:\/\/what3words.com to find your own three
424
- words :)","updated_time":"2016-06-26T05:04:58+0000","created_time":"2016-06-15T07:55:13+0000","id":"150352985174571_474135702796296","attachments":{"data":[{"title":"Mongolia
425
- is changing all its addresses to three-word phrases","description":"All the
426
- mailman will need to find the US embassy in Ulaanbataar are these three words:
427
- constants.stuffy.activism.","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fqz.com\u00252F705273\u00252Fmongolia-is-changing-all-its-addresses-to-three-word-phrases\u00252F&h=JAQFMAksP&s=1&enc=AZN02PMmsYT-iK2B1lVh0qeNY7OGxEegLsCoQEytDDBIJgskc9gKuVUVI0SOHPwA5RbLYjALZVY9tHuLS0F0_86P","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQBCzb8yBioJKKug&w=720&h=720&url=https\u00253A\u00252F\u00252Fqzprod.files.wordpress.com\u00252F2016\u00252F06\u00252Fjune-13-rtx12cmt-e1465820880769.jpg\u00253Fquality\u00253D80\u002526strip\u00253Dall\u002526w\u00253D1600&cfs=1","width":720}}}]}}],"paging":{"previous":"https:\/\/graph.facebook.com\/v2.6\/150352985174571\/feed?fields=name,message,updated_time,created_time,attachments\u00257Btitle,description,url,media\u00257D&since=1476952146&access_token=<ACCESS_TOKEN>&limit=25&__paging_token=enc_AdDRT3FRqddWHdExcEnxBuffZCipxhESZBM93TZAL1VTlcfHQr3aWV1rq23kG3uiPxcZCwvQeCiZC8fEJvrhCQFCo6fyMk1u9HaT3EXZBICgj897coSwZDZD&__previous=1","next":"https:\/\/graph.facebook.com\/v2.6\/150352985174571\/feed?fields=name,message,updated_time,created_time,attachments\u00257Btitle,description,url,media\u00257D&access_token=<ACCESS_TOKEN>&limit=25&until=1466917498&__paging_token=enc_AdBmZAsUzYqHLvymmCwfLv8K48KqrS6LGOHvgiJYkb7Brd7RrwyTZA8gMCDGPWYdza3XzU34YBZB7Xn0iN7WcT9cLhvOIFzhb8ZCDP8F35OnaNwZBtQZDZD"}}}'
258
+ challenge.","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Ftutorialzine.com\u00252F2014\u00252F06\u00252Fguess-the-programming-language\u00252F&h=JAQGn104n&s=1&enc=AZMOUCd55s0k4Iy0-wG00azSX8txm69C1IRPq_6rHvuoGFU6MAHfvIwUnvg8ER-wPetjaRx55DiCizXn3c-1tnOQ","media":{"image":{"height":490,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQB9saA-D40lNQqm&w=720&h=720&url=http\u00253A\u00252F\u00252Fcdn.tutorialzine.com\u00252Fwp-content\u00252Fuploads\u00252F2014\u00252F06\u00252Fguess-the-programming-language.jpg&cfs=1","width":490}}}]},"id":"150352985174571_517105121832687"}'
428
259
  http_version:
429
- recorded_at: Wed, 26 Oct 2016 16:55:01 GMT
260
+ recorded_at: Fri, 04 Nov 2016 05:50:44 GMT
430
261
  - request:
431
262
  method: get
432
- uri: https://graph.facebook.com/1?access_token=<ACCESS_TOKEN_ESCAPED>&fields=id,name,feed%7Bname,message,updated_time,created_time,attachments%7Btitle,description,url,media%7D%7D
263
+ uri: https://graph.facebook.com/_12345?access_token=<ACCESS_TOKEN_ESCAPED>&fields=name,message,updated_time,created_time,attachments%7Btitle,description,url,media%7D
433
264
  body:
434
265
  encoding: US-ASCII
435
266
  string: ''
@@ -447,7 +278,7 @@ http_interactions:
447
278
  headers:
448
279
  Www-Authenticate:
449
280
  - 'OAuth "Facebook Platform" "not_found" "(#803) Some of the aliases you requested
450
- do not exist: 1"'
281
+ do not exist: _12345"'
451
282
  Access-Control-Allow-Origin:
452
283
  - "*"
453
284
  Pragma:
@@ -461,21 +292,21 @@ http_interactions:
461
292
  Content-Type:
462
293
  - text/javascript; charset=UTF-8
463
294
  X-Fb-Trace-Id:
464
- - AGqrqQnTSPL
295
+ - BHQskf8Fa0/
465
296
  X-Fb-Rev:
466
- - '2652207'
297
+ - '2663233'
467
298
  X-Fb-Debug:
468
- - A/XhkwqFNTd7k4IulSk3nhSvx9O8hz+xkGWl1WczfxUq35DFTf1ziedwF0YdlzEB4D/LAnTfOf5/SCIZOe2vVw==
299
+ - tMdkQneVVQCLcellJCKMlJIweCZ83TdQGL8ATcIqORmCBaB83rz9TuJSwzYmZW2J3TB1nQHwq3LUCBdQHQ1IYw==
469
300
  Date:
470
- - Sun, 30 Oct 2016 15:57:05 GMT
301
+ - Fri, 04 Nov 2016 05:50:44 GMT
471
302
  Connection:
472
303
  - close
473
304
  Content-Length:
474
- - '142'
305
+ - '148'
475
306
  body:
476
307
  encoding: UTF-8
477
308
  string: '{"error":{"message":"(#803) Some of the aliases you requested do not
478
- exist: 1","type":"OAuthException","code":803,"fbtrace_id":"AGqrqQnTSPL"}}'
309
+ exist: _12345","type":"OAuthException","code":803,"fbtrace_id":"BHQskf8Fa0\/"}}'
479
310
  http_version:
480
- recorded_at: Sun, 30 Oct 2016 15:57:07 GMT
311
+ recorded_at: Fri, 04 Nov 2016 05:50:44 GMT
481
312
  recorded_with: VCR 3.0.3
@@ -26,3 +26,22 @@ end
26
26
 
27
27
  RESULT_FILE = "#{FIXTURES_FOLDER}/fb_api_results.yml"
28
28
  FB_RESULT = YAML.load(File.read(RESULT_FILE))
29
+ INVALID_RESOURCE_ID = '_12345'
30
+
31
+ VCR.configure do |c|
32
+ c.cassette_library_dir = CASSETTES_FOLDER
33
+ c.hook_into :webmock
34
+
35
+ c.filter_sensitive_data('<ACCESS_TOKEN>') do
36
+ URI.unescape(ENV['FB_ACCESS_TOKEN'])
37
+ end
38
+
39
+ c.filter_sensitive_data('<ACCESS_TOKEN_ESCAPED>') do
40
+ ENV['FB_ACCESS_TOKEN']
41
+ end
42
+
43
+ c.filter_sensitive_data('<CLIENT_ID>') { ENV['FB_CLIENT_ID'] }
44
+ c.filter_sensitive_data('<CLIENT_SECRET>') { ENV['FB_CLIENT_SECRET'] }
45
+
46
+ c.ignore_hosts 'codeclimate.com'
47
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: facegroup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Soumya Ray
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-30 00:00:00.000000000 Z
11
+ date: 2016-11-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: http