forked from arsduo/koala
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
196 lines (174 loc) · 10.6 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
v1.2
New methods:
-- API is now the main API class, contains both Graph and REST methods
-- Old classes are aliased with deprecation warnings (non-breaking change)
-- TestUsers#update lets you update the name or password of an existing test user
-- API.get_page_access_token lets you easily fetch the access token for a page you manage (thanks, marcgg!)
Updated methods:
-- OAuth now parses Facebook's new signed cookie format
-- API.put_picture now accepts URLs to images (thanks, marcgg!)
-- Bug fixes to put_picture, parse_signed_request, and the test suite (thanks, johnbhall and Will S.!)
-- Smarter GraphCollection use
-- Any pageable result will now become a GraphCollection
-- Non-pageable results from get_connections no longer error
-- GraphCollection.raw_results allows access to original result data
Internal improvements:
-- Koala now uses Faraday to make requests, replacing the HTTPServices (see wiki)
-- Koala::HTTPService.http_options allows specification of default Faraday connection options
-- Koala::HTTPService.faraday_middleware allows custom middleware configurations
-- Koala now defaults to Net::HTTP rather than Typhoeus
-- Koala::NetHTTPService and Koala::TyphoeusService modules no longer exist
-- Koala no longer automatically switches to Net::HTTP when uploading IO objects to Facebook
-- RealTimeUpdates and TestUsers are no longer subclasses of API, but have their own .api objects
-- The old .graph_api accessor is aliases to .api with a deprecation warning
-- Removed deprecation warnings for pre-1.1 batch interface
Testing improvements:
-- Live test suites now run against test users by default
-- Test suite can be repeatedly run live without having to update facebook_data.yml
-- OAuth code and session key tests cannot be run against test users
-- Faraday adapter for live tests can be specified with ADAPTER=[your adapter] in the rspec command
-- Live tests can be run against the beta server by specifying BETA=true in the rspec command
-- Tests now pass against all rubies on Travis CI
-- Expanded and refactored test coverage
-- Fixed bug with YAML parsing in Ruby 1.9
v1.1
New methods:
-- Added Batch API support (thanks, seejohnrun and spiegela!)
-- includes file uploads, error handling, and FQL
-- Added GraphAPI#put_video
-- Added GraphAPI#get_comments_for_urls (thanks, amrnt!)
-- Added RestAPI#fql_multiquery, which simplifies the results (thanks, amrnt!)
-- HTTP services support global proxy and timeout settings (thanks, itchy!)
-- Net::HTTP supports global ca_path, ca_file, and verify_mode settings (thanks, spiegela!)
Updated methods:
-- RealtimeUpdates now uses a GraphAPI object instead of its own API
-- RestAPI#rest_call now has an optional last argument for method, for calls requiring POST, DELETE, etc. (thanks, sshilo!)
-- Filename can now be specified when uploading (e.g. for Ads API) (thanks, sshilo!)
-- get_objects([]) returns [] instead of a Facebook error in non-batch mode (thanks, aselder!)
Internal improvements:
-- Koala is now more compatible with other Rubies (JRuby, Rubinius, etc.)
-- HTTP services are more modular and can be changed on the fly (thanks, chadk!)
-- Includes support for uploading StringIOs and other non-files via Net::HTTP even when using TyphoeusService
-- Koala now uses multi_json to improve compatibility with Rubinius and other Ruby versions
-- Koala now uses the modern Typhoeus API (thanks, aselder!)
-- Koala now uses the current modern Net::HTTP interface (thanks, romanbsd!)
-- Fixed bugs and typos (thanks, waynn, mokevnin, and tikh!)
v1.0
New methods:
-- Photo and file upload now supported through #put_picture
-- Added UploadableIO class to manage file uploads
-- Added a delete_like method (thanks to waseem)
-- Added put_connection and delete_connection convenience methods
Updated methods:
-- Search can now search places, checkins, etc. (thanks, rickyc!)
-- You can now pass :beta => true in the http options to use Facebook's beta tier
-- TestUser#befriend now requires user info hashes (id and access token) due to Facebook API changes (thanks, pulsd and kbighorse!)
-- All methods now accept an http_options hash as their optional last parameter (thanks, spiegela!)
-- url_for_oauth_code can now take a :display option (thanks, netbe!)
-- Net::HTTP can now accept :timeout and :proxy options (thanks, gilles!)
-- Test users now supports using test accounts across multiple apps
Internal improvements:
-- For public requests, Koala now uses http by default (instead of https) to improve speed
-- This can be overridden through Koala.always_use_ssl= or by passing :use_ssl => true in the options hash for an api call
-- Read-only REST API requests now go through the faster api-read server
-- Replaced parse_signed_request with a version from Facebook that also supports the new signed params proposal
-- Note: invalid requests will now raise exceptions rather than return nil, in keeping with other SDKs
-- Delete methods will now raise an error if there's no access token (like put_object and delete_like)
-- Updated parse_signed_request to match Facebook's current implementation (thanks, imajes!)
-- APIError is now < StandardError, not Exception
-- Added KoalaError for non-API errors
-- Net::HTTP's SSL verification is no longer disabled by default
Test improvements:
-- Incorporated joshk's awesome rewrite of the entire Koala test suite (thanks, joshk!)
-- Expanded HTTP service tests (added Typhoeus test suite and additional Net::HTTP test cases)
-- Live tests now verify that the access token has the necessary permissions before starting
-- Replaced the 50-person network test, which often took 15+ minutes to run live, with a 5-person test
v0.10.0
-- Added test user module
-- Fixed bug when raising APIError after Facebook fails to exchange session keys
-- Made access_token accessible via the readonly access_token property on all our API classes
v0.9.1
-- Tests are now compatible with Ruby 1.9.2
-- Added JSON to runtime dependencies
-- Removed examples directory (referenced from github instead)
v0.9.0
-- Added parse_signed_request to handle Facebook's new authentication scheme
-- note: creates dependency on OpenSSL (OpenSSL::HMAC) for decryption
-- Added GraphCollection class to provide paging support for GraphAPI get_connections and search methods (thanks to jagthedrummer)
-- Added get_page method to easily fetch pages of results from GraphCollections
-- Exchanging sessions for tokens now works properly when provided invalid/expired session keys
-- You can now include a :typhoeus_options key in TyphoeusService#make_request's options hash to control the Typhoeus call (for example, to set :disable_ssl_peer_verification => true)
-- All paths provided to HTTP services start with leading / to improve compatibility with stubbing libraries
-- If Facebook returns nil for search or get_connections requests, Koala now returns nil rather than throwing an exception
v0.8.0
-- Breaking interface changes
-- Removed string overloading for the methods, per 0.7.3, which caused Marshaling issues
-- Removed ability to provide a string as the second argument to url_for_access_token, per 0.5.0
v0.7.4
-- Fixed bug with get_user_from_cookies
v0.7.3
-- Added support for picture sizes -- thanks thhermansen for the patch!
-- Adjusted the return values for several methods (get_access_token, get_app_access_token, get_token_from_session_key, get_tokens_from_session_keys, get_user_from_cookies)
-- These methods now return strings, rather than hashes, which makes more sense
-- The strings are overloaded with an [] method for backwards compatibility (Ruby is truly amazing)
-- Using those methods triggers a deprecation warning
-- This will be removed by 1.0
-- There are new info methods (get_access_token_info, get_app_access_token_info, get_token_info_from_session_keys, and get_user_info_from_cookies) that natively return hashes, for when you want the expiration date
-- Responses with HTTP status 500+ now properly throw errors under Net::HTTP
-- Updated changelog
-- Added license
v0.7.2
-- Added support for exchanging session keys for OAuth access tokens (get_token_from_session_key for single keys, get_tokens_from_session_keys for multiple)
-- Moved Koala files into a koala/ subdirectory to minimize risk of name collisions
-- Added OAuth Playground git submodule as an example
-- Updated tests, readme, and changelog
v0.7.1
-- Updated RealtimeUpdates#list_subscriptions and GraphAPI#get_connections to now return an
array of results directly (rather than a hash with one key)
-- Fixed a bug with Net::HTTP-based HTTP service in which the headers hash was improperly formatted
-- Updated readme
v0.7.0
-- Added RealtimeUpdates class, which can be used to manage subscriptions for user updates (see http://developers.facebook.com/docs/api/realtime)
-- Added picture method to graph API, which fetches an object's picture from the redirect headers.
-- Added _greatly_ improved testing with result mocking, which is now the default set of tests
-- Renamed live testing spec to koala_spec_without_mocks.rb
-- Added Koala::Response class, which encapsulates HTTP results since Facebook sometimes sends data in the status or headers
-- Much internal refactoring
-- Updated readme, changelog, etc.
v0.6.0
-- Added support for the old REST API thanks to cbaclig's great work
-- Updated tests to conform to RSpec standards
-- Updated changelog, readme, etc.
v0.5.1
-- Documentation is now on the wiki, updated readme accordingly.
v0.5.0
-- Added several new OAuth methods for making and parsing access token requests
-- Added test suite for the OAuth class
-- Made second argument to url_for_access_token a hash (strings still work but trigger a deprecation warning)
-- Added fields to facebook_data.yml
-- Updated readme
v0.4.1
-- Encapsulated GraphAPI and OAuth classes in the Koala::Facebook module for clarity (and to avoid claiming the global Facebook class)
-- Moved make_request method to Koala class from GraphAPI instance (for use by future OAuth class functionality)
-- Renamed request method to api for consistancy with Javascript library
-- Updated tests and readme
v0.4.0
-- Adopted the Koala name
-- Updated readme and tests
-- Fixed cookie verification bug for non-expiring OAuth tokens
v0.3.1
-- Bug fixes.
v0.3
-- Renamed Graph API class from Facebook::GraphAPI to FacebookGraph::API
-- Created FacebookGraph::OAuth class for tokens and OAuth URLs
-- Updated method for including HTTP service (think we've got it this time)
-- Updated tests
-- Added CHANGELOG and gemspec
v0.2
-- Gemified the project
-- Split out HTTP services into their own file, and adjusted inclusion method
v0.1
-- Added modular support for Typhoeus
-- Added tests
v0.0
-- Hi from F8! Basic read/write from the graph is working