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 +4 -4
- data/lib/facegroup/group.rb +1 -1
- data/lib/facegroup/posting.rb +1 -1
- data/lib/facegroup/version.rb +1 -1
- data/spec/facegroup_spec.rb +49 -51
- data/spec/fixtures/cassettes/facebook_api.yml +104 -273
- data/spec/spec_helper.rb +19 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6e6ee49fce9f477a401bf8f82b88fea4bcf1f747
|
4
|
+
data.tar.gz: 7c15f1801bbb3ebebfa6ce3c8514684ec87613d4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: adcb6f016f9481ac2c052cf944407f4faade693d07a122486f822faab627eb956c2d9d365892cd6253753c7e4e8a5c70277317a578ba1080649fb88227734433
|
7
|
+
data.tar.gz: c1a5418cfa37a2987236fc2ca406e3e0033c06a379e0880982ed130c020663ae26c77028023f118231bd7fece3ba9b9c0c1cc00b17a5da314f7415f89ad1e914
|
data/lib/facegroup/group.rb
CHANGED
data/lib/facegroup/posting.rb
CHANGED
data/lib/facegroup/version.rb
CHANGED
data/spec/facegroup_spec.rb
CHANGED
@@ -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
|
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
|
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
|
-
|
42
|
-
|
43
|
-
|
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
|
-
|
47
|
-
|
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
|
-
|
50
|
-
|
51
|
-
|
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
|
-
|
55
|
-
|
56
|
-
|
43
|
+
feed = group.feed
|
44
|
+
feed.count.must_be :>, 1
|
45
|
+
end
|
57
46
|
|
58
|
-
|
59
|
-
|
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
|
-
|
64
|
-
|
65
|
-
|
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
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
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
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
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
|
-
|
83
|
-
|
84
|
-
|
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
|
-
-
|
34
|
+
- HNH8sDb6eTA
|
35
35
|
X-Fb-Rev:
|
36
|
-
- '
|
36
|
+
- '2663233'
|
37
37
|
X-Fb-Debug:
|
38
|
-
-
|
38
|
+
- DC7A1MosnpwngxCO7BC4Kgt0E0cjyYYoGHsGS++1uHG0B1u/RpvCD4St2ZfTLQwO/gOkiV+lZ2NDsfZ3tiTc6Q==
|
39
39
|
Date:
|
40
|
-
-
|
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:
|
49
|
+
recorded_at: Fri, 04 Nov 2016 05:50:43 GMT
|
50
50
|
- request:
|
51
51
|
method: get
|
52
|
-
uri: https://graph.facebook.com/
|
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:
|
66
|
-
message:
|
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
|
-
-
|
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
|
-
-
|
84
|
+
- AEc1EkYn2tt
|
84
85
|
X-Fb-Rev:
|
85
|
-
- '
|
86
|
-
Vary:
|
87
|
-
- Accept-Encoding
|
86
|
+
- '2663233'
|
88
87
|
X-Fb-Debug:
|
89
|
-
-
|
88
|
+
- 77OsTl1/9jzF+wln2U2LhBsZeB3kHZqwX7O+IT9dVyUGqXQups5EWbUaCLAdGTB9DE5MWSwUInPHejNTmg/kBQ==
|
90
89
|
Date:
|
91
|
-
-
|
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: '{"
|
97
|
-
|
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:
|
100
|
+
recorded_at: Fri, 04 Nov 2016 05:50:43 GMT
|
186
101
|
- request:
|
187
102
|
method: get
|
188
|
-
uri: https://graph.facebook.com/
|
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
|
-
- '"
|
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
|
-
-
|
134
|
+
- GoFnnTpJV3Z
|
220
135
|
X-Fb-Rev:
|
221
|
-
- '
|
136
|
+
- '2663233'
|
222
137
|
Vary:
|
223
138
|
- Accept-Encoding
|
224
139
|
X-Fb-Debug:
|
225
|
-
-
|
140
|
+
- 0ktkzLjxNYMz5WLB1VcdBhXU37Q2XCVHiUQTB4GwpUmTBVUqlbzzWBwJ+VaPTzAeWdxXt16v2ujouTucP0v3Fg==
|
226
141
|
Date:
|
227
|
-
-
|
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":"
|
233
|
-
|
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=
|
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:
|
207
|
+
recorded_at: Fri, 04 Nov 2016 05:50:43 GMT
|
239
208
|
- request:
|
240
209
|
method: get
|
241
|
-
uri: https://graph.facebook.com/
|
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
|
-
- '"
|
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
|
-
-
|
241
|
+
- Hg8s20weOcB
|
273
242
|
X-Fb-Rev:
|
274
|
-
- '
|
243
|
+
- '2663233'
|
275
244
|
Vary:
|
276
245
|
- Accept-Encoding
|
277
246
|
X-Fb-Debug:
|
278
|
-
-
|
247
|
+
- NwGANzCO7IKQk0rTHKBosG9gELd61RUFshBtKny+LQmZ3tnZqypuh6IuS7QbptdUWXzN0aQoMlY9VI7vT8DsUA==
|
279
248
|
Date:
|
280
|
-
-
|
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: '{"
|
286
|
-
|
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=
|
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:
|
260
|
+
recorded_at: Fri, 04 Nov 2016 05:50:44 GMT
|
430
261
|
- request:
|
431
262
|
method: get
|
432
|
-
uri: https://graph.facebook.com/
|
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:
|
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
|
-
-
|
295
|
+
- BHQskf8Fa0/
|
465
296
|
X-Fb-Rev:
|
466
|
-
- '
|
297
|
+
- '2663233'
|
467
298
|
X-Fb-Debug:
|
468
|
-
-
|
299
|
+
- tMdkQneVVQCLcellJCKMlJIweCZ83TdQGL8ATcIqORmCBaB83rz9TuJSwzYmZW2J3TB1nQHwq3LUCBdQHQ1IYw==
|
469
300
|
Date:
|
470
|
-
-
|
301
|
+
- Fri, 04 Nov 2016 05:50:44 GMT
|
471
302
|
Connection:
|
472
303
|
- close
|
473
304
|
Content-Length:
|
474
|
-
- '
|
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:
|
309
|
+
exist: _12345","type":"OAuthException","code":803,"fbtrace_id":"BHQskf8Fa0\/"}}'
|
479
310
|
http_version:
|
480
|
-
recorded_at:
|
311
|
+
recorded_at: Fri, 04 Nov 2016 05:50:44 GMT
|
481
312
|
recorded_with: VCR 3.0.3
|
data/spec/spec_helper.rb
CHANGED
@@ -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.
|
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-
|
11
|
+
date: 2016-11-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: http
|