unsplash 1.4.3 → 1.5.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/README.md +5 -0
- data/lib/unsplash/configuration.rb +1 -0
- data/lib/unsplash/connection.rb +35 -4
- data/lib/unsplash/version.rb +1 -1
- 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: 6e38d0698ca01b7ff19c93da8ee6485081268d23
|
4
|
+
data.tar.gz: 6ee07125feb0c023259edc2fccb028f182ea1f7c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 50b9cc311c3268802f4c04e873efeee092aec52419427d300b654dc4e8b8534c4fdc93c7719914e4733e48f4aa8d0d2b28ddb437f1d1a166bfa8a360da88230e
|
7
|
+
data.tar.gz: f2c9cca9709aba66789c67a40ef8eb37f61d315e7c8b857b04844775c987dc9c3bc65bd5e3b55bfb21ff201c9621fdae0215fd7f3cf8a477c8fda8afb0734a42
|
data/README.md
CHANGED
@@ -33,9 +33,14 @@ Unsplash.configure do |config|
|
|
33
33
|
config.application_id = "YOUR APPLICATION ID"
|
34
34
|
config.application_secret = "YOUR APPLICATION SECRET"
|
35
35
|
config.application_redirect_uri = "https://your-application.com/oauth/callback"
|
36
|
+
config.utm_source = "alices_terrific_client_app"
|
36
37
|
end
|
37
38
|
```
|
38
39
|
|
40
|
+
#### UTM parameters
|
41
|
+
|
42
|
+
As part of [the API guidelines](https://community.unsplash.com/developersblog/unsplash-api-guidelines), all API uses are required to use utm links when providing credit to photographers and Unsplash. Set the `config.utm_source` to your app's name to automatically append the utm source.
|
43
|
+
|
39
44
|
### Public-scope actions
|
40
45
|
|
41
46
|
If you are *only* making public requests (i.e. nothing requiring a specific logged-in user, for example liking photos or accessing private user details), then you're ready to go!
|
data/lib/unsplash/connection.rb
CHANGED
@@ -22,8 +22,8 @@ module Unsplash #:nodoc:
|
|
22
22
|
@application_secret = Unsplash.configuration.application_secret
|
23
23
|
@api_version = version
|
24
24
|
@api_base_uri = api_base_uri
|
25
|
-
|
26
|
-
oauth_base_uri
|
25
|
+
|
26
|
+
oauth_base_uri = oauth_base_uri
|
27
27
|
@oauth = ::OAuth2::Client.new(@application_id, @application_secret, site: oauth_base_uri) do |http|
|
28
28
|
http.request :multipart
|
29
29
|
http.request :url_encoded
|
@@ -49,6 +49,24 @@ module Unsplash #:nodoc:
|
|
49
49
|
# TODO check if it succeeded
|
50
50
|
end
|
51
51
|
|
52
|
+
# Extract hash with OAuth token attributes. Extracted token attributes can
|
53
|
+
# be used with create_and_assign_token to prevent the need for
|
54
|
+
# reauthorization.
|
55
|
+
# @return [Hash, nil] @oauth_token converted to a hash.
|
56
|
+
def extract_token
|
57
|
+
@oauth_token.to_hash if @oauth_token
|
58
|
+
end
|
59
|
+
|
60
|
+
# Create and assign new access token from extracted token. To be used with
|
61
|
+
# extract_token to reauthorize app without api call.
|
62
|
+
# @param token_extract [Hash] OAuth token hash from #extract_token.
|
63
|
+
# @return [OAuth2::AccessToken, nil] New access token object.
|
64
|
+
def create_and_assign_token(token_extract)
|
65
|
+
unless token_extract.nil?
|
66
|
+
@oauth_token = OAuth2::AccessToken.from_hash(@oauth, token_extract)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
52
70
|
# Perform a GET request.
|
53
71
|
# @param path [String] The path at which to make ther request.
|
54
72
|
# @param params [Hash] A hash of request parameters.
|
@@ -82,6 +100,13 @@ module Unsplash #:nodoc:
|
|
82
100
|
def request(verb, path, params = {})
|
83
101
|
raise ArgumentError.new "Invalid http verb #{verb}" if ![:get, :post, :put, :delete].include?(verb)
|
84
102
|
|
103
|
+
params.merge!(utm_params)
|
104
|
+
|
105
|
+
if !Unsplash.configuration.utm_source
|
106
|
+
url = "https://community.unsplash.com/developersblog/unsplash-api-guidelines"
|
107
|
+
Unsplash.configuration.logger.warn "utm_source is required as part of API Terms: #{url}"
|
108
|
+
end
|
109
|
+
|
85
110
|
headers = {
|
86
111
|
"Accept-Version" => @api_version
|
87
112
|
# Anything else? User agent?
|
@@ -92,7 +117,6 @@ module Unsplash #:nodoc:
|
|
92
117
|
|
93
118
|
param_key = verb == :post ? :body : :params
|
94
119
|
@oauth_token.public_send(verb, @api_base_uri + path, param_key => params, headers: headers)
|
95
|
-
|
96
120
|
else
|
97
121
|
self.class.public_send verb, path, query: params, headers: public_auth_header
|
98
122
|
end
|
@@ -116,11 +140,18 @@ module Unsplash #:nodoc:
|
|
116
140
|
{ "Authorization" => "Client-ID #{@application_id}" }
|
117
141
|
end
|
118
142
|
|
143
|
+
def utm_params
|
144
|
+
{
|
145
|
+
utm_source: Unsplash.configuration.utm_source || "api_app",
|
146
|
+
utm_medium: "referral",
|
147
|
+
utm_campaign: "api-credit"
|
148
|
+
}
|
149
|
+
end
|
150
|
+
|
119
151
|
def refresh_token!
|
120
152
|
return if !@oauth_token.expired?
|
121
153
|
|
122
154
|
@oauth_token = @oauth_token.refresh_token
|
123
155
|
end
|
124
156
|
end
|
125
|
-
|
126
157
|
end
|
data/lib/unsplash/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: unsplash
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aaron Klaassen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-04-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|