browse-everything 0.3.0 → 0.4.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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YjFkMzhlOTI5ZmE2NWViNTM1ZGE1ZGZmM2E4NGI4ZDMzMWVhMDE3Mw==
4
+ OGZmMTA5NTFiMmVjY2M2YWUzMTU0Mzc0NzI3ZWJmZDFjY2ZjYTkzNg==
5
5
  data.tar.gz: !binary |-
6
- ZTY1NzA0OGZkMjMyZWQ3YTY2ZDYwMjg3MWQ1ZDgwNmU1NDU2N2JkMg==
6
+ MDUwODBiZWQ1NDRiMDRmZThlNWJmN2I3NDU5MjM5YzMzMmMyMGE4OA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- OTQ2OGI4MDAwMTczNTdjMTZmZDhkNzAwOGY0MjlhNjVmZTlkMDFiY2ZmNGZk
10
- ZGYyYzA0Yzk3ZmVkN2ExYmMwY2FmYTIwYjY5MjFmY2E2N2QwOTI0MmM5N2Fm
11
- YzE1YzdhOTg0ZWVjOTZjMGNmMThkYzVjODkxNmMxNjQ3MmQyYTI=
9
+ ZWE3YjBiNTM5OWNlOWI2ZDU3ZTJhYTYzMTE2MWQ3M2I1ZjBiZWRjMTRkYmY5
10
+ MzZjMjI0ZThmNWJiOTM2ZThjMTA2Njc5ZDFiZTc4ZTJhNTFmZTk3ODRkOGFh
11
+ ODE2YzQxMTFkOWQzMmUwNDFlMDMxMWU2MzRjMWZkYzBlOGE4NjE=
12
12
  data.tar.gz: !binary |-
13
- NGJmMDBlODBmMDA4MDY1YTI5MjY2OTdkYmViYzIyNTc5ODlkMDJlZDY3ZmEw
14
- YjcxYjM1ZmU1YzFjNDhjMDc0NmZjNWU2ZDRkNTAzNDA4NjJlMDYzYzJlNGEz
15
- NmU0MzE0Yzk4ZDRjODg5OGZmZTA5MmJmMzU2NWYyZmQ0YzE1YTM=
13
+ ZGI3OGRhYmYwODgwMGYyOTA3Nzk0MzgwZmEzNmYwMjFiYjc0NTY2OTkxMjY5
14
+ NWUyNDA2NDYwNDExNDJkNWU5MzBhM2JmMTYyMDEyOGY3MDMxYzU2MjhkNWFh
15
+ YTM4MDFhOTI0NGE3NDY3ODMyZDg5MzhiNzc4NzIxNDU2ZWMyMmQ=
data/HISTORY.md CHANGED
@@ -1,3 +1,7 @@
1
+ ### 0.4.0 (2014-04-01)
2
+ - Added configuration generator
3
+ - Improved documentation
4
+
1
5
  ### 0.3.0 (2014-03-24)
2
6
  - Additional response parameters
3
7
  - Refresh token fixes for Box, SkyDrive, and Google Drive
data/README.md CHANGED
@@ -25,75 +25,36 @@ And then execute:
25
25
  Or install it yourself as:
26
26
 
27
27
  $ gem install browse-everything
28
+
29
+ ### Configuring the gem
30
+
31
+ After installing the gem, run the generator
28
32
 
29
- ## Usage
30
-
31
- ### Configuration
32
-
33
- To use the gem you will need to configure the providers by providing applcation keys that are required by each provider
34
-
35
- An example config/browse_everything_providers.yml:
36
-
37
- ```yaml
38
- ---
39
- file_system:
40
- :home: /<location for server file drop>
41
- sky_drive:
42
- :client_id: <your client id>
43
- :client_secret: <your client secret>
44
- box:
45
- :client_id: <your client id>
46
- :client_secret: <your client secret>
47
- drop_box:
48
- :app_key: <your client id>
49
- :app_secret: <your app secret>
50
- google_drive:
51
- :client_id: <your client id>
52
- :client_secret: <your client secret>
53
- ```
33
+ $ rails g browse_anything:config
34
+
35
+ This generator will set up the _config/browse_everything_providers.yml_ file and add the browse-everything engine to your application's routes.
54
36
 
55
- You must register your application with each cloud provider separately:
37
+ If you prefer not to use the generator, or need info on how to set up providers in the browse_everything_providers.yml, use the info on [Configuring browse-everything](https://github.com/projecthydra/browse-everything/wiki/Configuring-browse-everything).
56
38
 
57
- * Skydrive: [https://account.live.com/developers/applications/create](https://account.live.com/developers/applications/create)
58
- * Dropbox: [https://www.dropbox.com/developers/apps/create](https://www.dropbox.com/developers/apps/create)
59
- * Box: [https://app.box.com/developers/services/edit/](https://app.box.com/developers/services/edit/)
60
- * GoogleDrive: [https://code.google.com/apis/console](https://code.google.com/apis/console)
61
-
62
- ### CSS and JavaScript Modifications
39
+ ### Include the CSS and JavaScript
63
40
 
64
41
  Add `@import "browse_everything";` to your application.css.scss
65
42
 
66
43
  Add `//= require browse_everything` to your application.js
67
44
 
68
- ### Routes
45
+ ## Usage
69
46
 
70
- Mount the engine in your routes.rb
71
-
72
- ```
73
- mount BrowseEverything::Engine => '/browse'
74
- ```
47
+ ### Adding Providers
48
+ In order to connect to a provider like [DropBox](http://www.dropbox.com),
49
+ [Skydrive](https://skydrive.live.com/), [Google Drive](http://drive.google.com), or
50
+ [Box](http://www.box.com), you must provide API keys in _config/browse_everything_providers.yml_. For info on how to edit this file, see [Configuring browse-everything](https://github.com/projecthydra/browse-everything/wiki/Configuring-browse-everything)
75
51
 
76
52
  ### Views
77
53
 
78
- browse-everything can be triggered in one of two ways:
79
-
80
- #### Via data attributes
81
-
82
- ```html
83
- <button type="button" data-toggle="browse-everything" data-route="<%=browse_everything_engine.root_path%>"
84
- data-target="#myForm" class="btn btn-large btn-success" id="browse">Browse!</button>
85
- ```
86
-
87
- #### Via JavaScript
88
-
89
- ```javascript
90
- $('#browse').browseEverything(options)
91
- ```
54
+ browse-everything can be triggered in two ways -- either via data attributes in an HTML tag or via JavaScript. Either way, it accepts the same options:
92
55
 
93
56
  #### Options
94
57
 
95
- Options can be passed via data attributes or JavaScript. For data attributes, append the option name to `data-`,
96
- as in `data-target="#myForm"`.
97
58
 
98
59
  | Name | type | default | description |
99
60
  |-----------------|-----------------|-----------------|----------------------------------------------------------------|
@@ -101,45 +62,40 @@ as in `data-target="#myForm"`.
101
62
  | target | xpath or jQuery | null | A form object to add the results to as hidden fields. |
102
63
 
103
64
  If a `target` is provided, browse-everything will automatically convert the JSON response to a series of hidden form fields
104
- that can be posted back to Rails to re-create the array on the server side.
65
+ that can be posted back to Rails to re-create the array on the server side.
105
66
 
106
- #### Methods
107
67
 
108
- ##### .browseEverything(options)
68
+ #### Via data attributes
109
69
 
110
- Attaches the browsing behavior to the click event of the receiver.
70
+ To trigger browse-everything using data attributes, set the _data-toggle_ attribute to "browse-everything" on the HTML tag. This tells the javascript where to attach the browse-everything behaviors. Pass in the options using the _data-route_ and _data-target_ attributes, as in `data-target="#myForm"`.
71
+
72
+ For example:
73
+
74
+ ```html
75
+ <button type="button" data-toggle="browse-everything" data-route="<%=browse_everything_engine.root_path%>"
76
+ data-target="#myForm" class="btn btn-large btn-success" id="browse">Browse!</button>
77
+ ```
78
+
79
+ #### Via JavaScript
80
+
81
+ To trigger browse-everything via javascript, use the .browseEverything() method to attach the behaviors to DOM elements.
111
82
 
83
+ ```javascript
84
+ $('#browse').browseEverything(options)
85
+ ```
86
+
87
+ The options argument should be a JSON object with the route and (optionally) target values set. For example:
112
88
  ```javascript
113
89
  $('#browse').browseEverything({
114
90
  route: "/browse",
115
91
  target: "#myForm"
116
- }).done(function(data) {
117
- // User has submitted files; data contains an array of URLs and their options
118
- }).cancel(function() {
119
- // User cancelled the browse operation
120
- }).fail(function(status, error, text) {
121
- // URL retrieval experienced a techical failure
122
- });
92
+ })
123
93
  ```
124
94
 
125
- ##### .browseEverything()
126
-
127
- Returns the existing callback object for the receiver, allowing for a mix of data attribute and JavaScript modes.
128
-
129
- ```html
130
- <button type="button" data-toggle="browse-everything" data-route="/browse"
131
- data-target="#myForm" class="btn btn-large btn-success" id="browse">Browse!</button>
95
+ See [JavaScript Methods](https://github.com/projecthydra/browse-everything/wiki/JavaScript-Methods) for more info on using javascript to trigger browse-everything.
132
96
 
133
- <script>
134
- $(document).ready(function() {
135
- $('#browse').browseEverything().done(function(data) {
136
- // Set the "done" callback for the already-defined #browse button
137
- })
138
- });
139
- </script>
140
- ```
141
97
 
142
- #### Data Structure
98
+ ### The Results (Data Structure)
143
99
 
144
100
  browse-everything returns a JSON data structure consisting of an array of URL specifications. Each URL specification
145
101
  is a plain object with the following properties:
@@ -151,6 +107,40 @@ is a plain object with the following properties:
151
107
  | expires | The expiration date/time of the specified URL. |
152
108
  | file_name | The base name (filename.ext) of the selected file. |
153
109
 
110
+ For example, after picking two files from dropbox,
111
+
112
+ If you initialized browse-everything via JavaScript, the results data passed to the `.done()` callback will look like this:
113
+ ```json
114
+ [
115
+ {
116
+ "url": "https://dl.dropbox.com/fake/filepicker-demo.txt.txt",
117
+ "expires": "2014-03-31T20:37:36.214Z",
118
+ "file_name": "filepicker-demo.txt.txt"
119
+ }, {
120
+ "url": "https://dl.dropbox.com/fake/Getting%20Started.pdf",
121
+ "expires": "2014-03-31T20:37:36.731Z",
122
+ "file_name": "Getting+Started.pdf"
123
+ }
124
+ ]
125
+ ```
126
+ See [JavaScript Methods](https://github.com/projecthydra/browse-everything/wiki/JavaScript-Methods) for more info on using javascript to trigger browse-everything.
127
+
128
+ If you initialized browse-everything via data-attributes and set the _target_ option (via the _data-target_ attribute or via the _target_ option on the javascript method), the results data be written as hidden fields in the `<form>` you've specified as the target. When the user submits that form, the results will look like this:
129
+ ```ruby
130
+ "selected_files" => {
131
+ "0"=>{
132
+ "url"=>"https://dl.dropbox.com/fake/filepicker-demo.txt.txt",
133
+ "expires"=>"2014-03-31T20:37:36.214Z",
134
+ "file_name"=>"filepicker-demo.txt.txt"
135
+ },
136
+ "1"=>{
137
+ "url"=>"https://dl.dropbox.com/fake/Getting%20Started.pdf",
138
+ "expires"=>"2014-03-31T20:37:36.731Z",
139
+ "file_name"=>"Getting+Started.pdf"
140
+ }
141
+ }
142
+ ```
143
+
154
144
  ### Examples
155
145
 
156
146
  See `spec/support/app/views/file_handler/index.html` for an example use case. You can also run `rake app:generate` to
@@ -32,6 +32,8 @@
32
32
  position: fixed !important;
33
33
  margin: 0 0 0 -37.5%;
34
34
  left: 50%;
35
+ top: 10%;
36
+ background-color: initial;
35
37
  width: 75%;
36
38
 
37
39
  .modal-body {
@@ -90,4 +92,4 @@
90
92
  }
91
93
  }
92
94
 
93
- }
95
+ }
@@ -36,5 +36,6 @@ Gem::Specification.new do |spec|
36
36
  spec.add_development_dependency "webmock"
37
37
  spec.add_development_dependency "vcr"
38
38
  spec.add_development_dependency "sqlite3"
39
+ spec.add_development_dependency "factory_girl_rails"
39
40
 
40
41
  end
@@ -13,7 +13,7 @@ module BrowseEverything
13
13
  end
14
14
 
15
15
  def contents(path='')
16
- relative_path = path.sub(%r{^[/.]+},'')
16
+ relative_path = path.sub(%r{^[\/.]+},'')
17
17
  real_path = File.join(config[:home], relative_path)
18
18
  result = []
19
19
  if File.directory?(real_path)
@@ -1,3 +1,3 @@
1
1
  module BrowseEverything
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0"
3
3
  end
@@ -0,0 +1,31 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'rails/generators'
3
+
4
+ class BrowseEverything::ConfigGenerator < Rails::Generators::Base
5
+ desc """
6
+ This generator makes the following changes to your application:
7
+ 1. Creates config/browse_everything_providers.yml with a placeholder value
8
+ 2. Modifies your app's routes.rb to mount BrowseEverything at /browse
9
+ """
10
+ source_root File.expand_path('../templates', __FILE__)
11
+
12
+ def inject_routes
13
+ insert_into_file "config/routes.rb", :after => ".draw do" do
14
+ %{
15
+ mount BrowseEverything::Engine => '/browse'}
16
+ end
17
+ end
18
+
19
+ def copy_example_config
20
+ copy_file "browse_everything_providers.yml.example", "config/browse_everything_providers.yml"
21
+ end
22
+
23
+ def insert_file_system_path
24
+ insert_into_file "config/browse_everything_providers.yml", :before => "# drop_box:" do
25
+ YAML.dump({ 'file_system' => { :home => Rails.root.to_s }})
26
+ end
27
+ end
28
+
29
+
30
+
31
+ end
@@ -0,0 +1,16 @@
1
+ #
2
+ # To make browse-everything aware of a provider, uncomment the info for that provider and add your API key information.
3
+ # The file_system provider can be a path to any directory on the server where your application is running.
4
+ #
5
+ # drop_box:
6
+ # :app_key: YOUR_DROPBOX_APP_KEY
7
+ # :app_secret: YOUR_DROPBOX_APP_SECRET
8
+ # box:
9
+ # :client_id: YOUR_BOX_CLIENT_ID
10
+ # :client_secret: YOUR_BOX_CLIENT_SECRET
11
+ # google_drive:
12
+ # :client_id: YOUR_GOOGLE_API_CLIENT_ID
13
+ # :client_secret: YOUR_GOOGLE_API_CLIENT_SECRET
14
+ # sky_drive:
15
+ # :client_id: YOUR_MS_LIVE_CONNECT_CLIENT_ID
16
+ # :client_secret: YOUR_MS_LIVE_CONNECT_CLIENT_SECRET
@@ -189,6 +189,45 @@ http_interactions:
189
189
  "expires": "Fri, 20 Sep 2013 19:39:01 +0000"}'
190
190
  http_version: '1.1'
191
191
  recorded_at: Fri, 20 Sep 2013 15:39:01 GMT
192
+ - request:
193
+ method: get
194
+ uri: https://api.dropbox.com/1/media/auto/Writer/Writer%20FAQ.txt
195
+ body:
196
+ encoding: UTF-8
197
+ string: ''
198
+ headers:
199
+ Accept: ! '*/*'
200
+ User-Agent: OfficialDropboxRubySDK/1.6.1
201
+ Authorization: Bearer FakeDropboxAccessToken01234567890ABCDEF_AAAAAAA987654321
202
+ Connection: close
203
+ Host: api.dropbox.com
204
+ response:
205
+ status:
206
+ code: '200'
207
+ message: OK
208
+ headers:
209
+ Server: nginx
210
+ Date: Fri, 20 Sep 2013 15:39:01 GMT
211
+ Content-Type: text/javascript
212
+ Transfer-Encoding: chunked
213
+ Connection: close
214
+ set-cookie: ! 'gvc=MjEyNTM5NjUyNDAyMDIwODUzNTU0MTY0NzA0ODU4MzczNTU0NDI%3D; expires=Wed,
215
+ 19 Sep 2018 15:39:01
216
+
217
+ GMT; Path=/; httponly'
218
+ x-server-response-time: '68'
219
+ x-dropbox-request-id: d8dbc2e2080168d6e34d85165aa69c0e
220
+ pragma: no-cache
221
+ cache-control: no-cache
222
+ x-dropbox-http-protocol: None
223
+ x-frame-options: SAMEORIGIN
224
+ X-RequestId: e03a6c0ded5f7088ba59ecd9e97234a6
225
+ body:
226
+ encoding: UTF-8
227
+ string: ! '{"url": "https://dl.dropboxusercontent.com/1/view/FakeDropboxAccessPath/Writer/Writer%20FAQ.txt",
228
+ "expires": "Fri, 20 Sep 2013 19:39:01 +0000"}'
229
+ http_version: '1.1'
230
+ recorded_at: Fri, 20 Sep 2013 15:39:01 GMT
192
231
  - request:
193
232
  method: get
194
233
  uri: https://api.dropbox.com/1/media/auto/Writer/Markdown%20Test.txt?
@@ -228,4 +267,43 @@ http_interactions:
228
267
  "expires": "Fri, 20 Sep 2013 19:39:02 +0000"}'
229
268
  http_version: '1.1'
230
269
  recorded_at: Fri, 20 Sep 2013 15:39:02 GMT
270
+ - request:
271
+ method: get
272
+ uri: https://api.dropbox.com/1/media/auto/Writer/Markdown%20Test.txt
273
+ body:
274
+ encoding: UTF-8
275
+ string: ''
276
+ headers:
277
+ Accept: ! '*/*'
278
+ User-Agent: OfficialDropboxRubySDK/1.6.1
279
+ Authorization: Bearer FakeDropboxAccessToken01234567890ABCDEF_AAAAAAA987654321
280
+ Connection: close
281
+ Host: api.dropbox.com
282
+ response:
283
+ status:
284
+ code: '200'
285
+ message: OK
286
+ headers:
287
+ Server: nginx
288
+ Date: Fri, 20 Sep 2013 15:39:02 GMT
289
+ Content-Type: text/javascript
290
+ Transfer-Encoding: chunked
291
+ Connection: close
292
+ set-cookie: ! 'gvc=NjgwODYwOTI2NTA5OTAyNzE3NzE4MDU3MzY0NTQ3NTYyNTYyNDE%3D; expires=Wed,
293
+ 19 Sep 2018 15:39:02
294
+
295
+ GMT; Path=/; httponly'
296
+ x-server-response-time: '78'
297
+ x-dropbox-request-id: b6fd9a3c039d2aea3def25f8f2f5ac3a
298
+ pragma: no-cache
299
+ cache-control: no-cache
300
+ x-dropbox-http-protocol: None
301
+ x-frame-options: SAMEORIGIN
302
+ X-RequestId: 30d2c0cf0122795ebce9bd5f26ce0c60
303
+ body:
304
+ encoding: UTF-8
305
+ string: ! '{"url": "https://dl.dropboxusercontent.com/1/view/FakeDropboxAccessPath/Writer/Markdown%20Test.txt",
306
+ "expires": "Fri, 20 Sep 2013 19:39:02 +0000"}'
307
+ http_version: '1.1'
308
+ recorded_at: Fri, 20 Sep 2013 15:39:02 GMT
231
309
  recorded_with: Charles Proxy
@@ -2,6 +2,11 @@ require 'rails/generators'
2
2
 
3
3
  class TestAppGenerator < Rails::Generators::Base
4
4
  source_root File.expand_path("../../../../support", __FILE__)
5
+
6
+ def run_config_generator
7
+ generate "browse_everything:config"
8
+ end
9
+
5
10
  def inject_css
6
11
  copy_file "../internal/app/assets/stylesheets/application.css", "app/assets/stylesheets/application.css.scss"
7
12
  remove_file "app/assets/stylesheets/application.css"
@@ -26,25 +31,15 @@ class TestAppGenerator < Rails::Generators::Base
26
31
  insert_into_file "config/routes.rb", :after => ".draw do" do
27
32
  %{
28
33
 
29
- mount BrowseEverything::Engine => '/browse'
30
34
  root :to => "file_handler#index"
31
35
  post '/file', :to => "file_handler#update"
32
36
  }
33
37
  end
34
38
  end
35
39
 
36
- def create_bev_configuration
37
- create_file "config/browse_everything_providers.yml" do
38
- YAML.dump({ 'file_system' => { :home => Rails.root.to_s }})
39
- end
40
- end
41
-
42
40
  def create_test_route
43
41
  copy_file "app/controllers/file_handler_controller.rb", "app/controllers/file_handler_controller.rb"
44
42
  copy_file "app/views/file_handler/index.html.erb", "app/views/file_handler/index.html.erb"
45
43
  end
46
44
 
47
- def copy_example_config
48
- copy_file "config/browse_everything_providers.yml.example", "config/browse_everything_providers.yml.example"
49
- end
50
45
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: browse-everything
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carolyn Cole
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2014-03-24 00:00:00.000000000 Z
15
+ date: 2014-04-01 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: rails
@@ -266,6 +266,20 @@ dependencies:
266
266
  - - ! '>='
267
267
  - !ruby/object:Gem::Version
268
268
  version: '0'
269
+ - !ruby/object:Gem::Dependency
270
+ name: factory_girl_rails
271
+ requirement: !ruby/object:Gem::Requirement
272
+ requirements:
273
+ - - ! '>='
274
+ - !ruby/object:Gem::Version
275
+ version: '0'
276
+ type: :development
277
+ prerelease: false
278
+ version_requirements: !ruby/object:Gem::Requirement
279
+ requirements:
280
+ - - ! '>='
281
+ - !ruby/object:Gem::Version
282
+ version: '0'
269
283
  description: AJAX/Rails engine file browser for cloud storage services
270
284
  email:
271
285
  - cam156@psu.edu
@@ -317,6 +331,8 @@ files:
317
331
  - lib/browse_everything/engine.rb
318
332
  - lib/browse_everything/file_entry.rb
319
333
  - lib/browse_everything/version.rb
334
+ - lib/generators/browse_everything/config_generator.rb
335
+ - lib/generators/browse_everything/templates/browse_everything_providers.yml.example
320
336
  - spec/fixtures/file_system/dir_1/dir_3/file_3.m4v
321
337
  - spec/fixtures/file_system/dir_1/file_2.txt
322
338
  - spec/fixtures/file_system/dir_2/file_4.docx
@@ -327,7 +343,6 @@ files:
327
343
  - spec/spec_helper.rb.orig
328
344
  - spec/support/app/controllers/file_handler_controller.rb
329
345
  - spec/support/app/views/file_handler/index.html.erb
330
- - spec/support/config/browse_everything_providers.yml.example
331
346
  - spec/support/lib/generators/test_app_generator.rb
332
347
  - spec/unit/base_spec.rb
333
348
  - spec/unit/browser_spec.rb
@@ -372,7 +387,6 @@ test_files:
372
387
  - spec/spec_helper.rb.orig
373
388
  - spec/support/app/controllers/file_handler_controller.rb
374
389
  - spec/support/app/views/file_handler/index.html.erb
375
- - spec/support/config/browse_everything_providers.yml.example
376
390
  - spec/support/lib/generators/test_app_generator.rb
377
391
  - spec/unit/base_spec.rb
378
392
  - spec/unit/browser_spec.rb
@@ -1,15 +0,0 @@
1
- ---
2
- file_system:
3
- :home: SERVER_SIDE_BROWSE_ROOT
4
- box:
5
- :client_id: YOUR_BOX_CLIENT_ID
6
- :client_secret: YOUR_BOX_CLIENT_SECRET
7
- drop_box:
8
- :app_key: YOUR_DROPBOX_APP_KEY
9
- :app_secret: YOUR_DROPBOX_APP_SECRET
10
- google_drive:
11
- :client_id: YOUR_GOOGLE_API_CLIENT_ID
12
- :client_secret: YOUR_GOOGLE_API_CLIENT_SECRET
13
- sky_drive:
14
- :client_id: YOUR_MS_LIVE_CONNECT_CLIENT_ID
15
- :client_secret: YOUR_MS_LIVE_CONNECT_CLIENT_SECRET