rgigya 1.0.2 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +13 -5
- data/VERSION +1 -1
- data/lib/rgigya/base.rb +340 -0
- data/lib/rgigya/hash.rb +19 -0
- data/lib/rgigya/sig_utils.rb +98 -0
- data/lib/rgigya.rb +3 -193
- data/rgigya.gemspec +8 -3
- data/spec/helpers.rb +26 -0
- data/spec/rgigya_secure_spec.rb +18 -0
- data/spec/rgigya_shared_examples.rb +315 -0
- data/spec/rgigya_signature_spec.rb +62 -0
- data/spec/spec_helper.rb +4 -5
- data/test/dummy/Gemfile +0 -1
- data/test/dummy/Gemfile.lock +8 -9
- data/test/dummy/config/environments/development.rb +6 -2
- data/test/dummy/log/development.log +300 -0
- metadata +21 -16
- data/spec/rgigya_spec.rb +0 -310
data/rgigya.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "rgigya"
|
8
|
-
s.version = "1.0
|
8
|
+
s.version = "1.1.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Scott Sampson"]
|
12
|
-
s.date = "2013-
|
12
|
+
s.date = "2013-05-17"
|
13
13
|
s.description = "This is a ruby SDK for the Gigya api."
|
14
14
|
s.email = "scott@cloudspace.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -25,9 +25,14 @@ Gem::Specification.new do |s|
|
|
25
25
|
"Rakefile",
|
26
26
|
"VERSION",
|
27
27
|
"lib/rgigya.rb",
|
28
|
+
"lib/rgigya/base.rb",
|
29
|
+
"lib/rgigya/hash.rb",
|
30
|
+
"lib/rgigya/sig_utils.rb",
|
28
31
|
"rgigya.gemspec",
|
29
32
|
"spec/helpers.rb",
|
30
|
-
"spec/
|
33
|
+
"spec/rgigya_secure_spec.rb",
|
34
|
+
"spec/rgigya_shared_examples.rb",
|
35
|
+
"spec/rgigya_signature_spec.rb",
|
31
36
|
"spec/spec_helper.rb",
|
32
37
|
"test/dummy/Gemfile",
|
33
38
|
"test/dummy/Gemfile.lock",
|
data/spec/helpers.rb
CHANGED
@@ -5,4 +5,30 @@ module Helpers
|
|
5
5
|
})
|
6
6
|
return response['UID']
|
7
7
|
end
|
8
|
+
|
9
|
+
def sample_frends_json_data
|
10
|
+
return JSON('{
|
11
|
+
"friends": [{
|
12
|
+
"UID": "00",
|
13
|
+
"isSiteUser": false,
|
14
|
+
"isSiteUID": false,
|
15
|
+
"identities": [{
|
16
|
+
"provider": "facebook",
|
17
|
+
"providerUID": "00000",
|
18
|
+
"isLoginIdentity": false,
|
19
|
+
"nickname": "Baba",
|
20
|
+
"photoURL": "http://profile.ak.fbcdn.net/hprofile-ak-snc4/00.jpg",
|
21
|
+
"thumbnailURL": "http://profile.ak.fbcdn.net/hprofile-ak-snc4/00.jpg"}],
|
22
|
+
"nickname": "Baba",
|
23
|
+
"photoURL": "http://profile.ak.fbcdn.net/hprofile-ak-snc4/00.jpg",
|
24
|
+
"thumbnailURL": "http://profile.ak.fbcdn.net/hprofile-ak-snc4/00.jpg",
|
25
|
+
"signatureTimestamp": "11111111111",
|
26
|
+
"friendshipSignature": "kfwFFiXqP+NySU79E+CZY0Pu1Mc="
|
27
|
+
}],
|
28
|
+
"statusCode": 200,
|
29
|
+
"errorCode": 0,
|
30
|
+
"statusReason": "OK",
|
31
|
+
"callId": "e2b7c39de36541b4940087d66d4c1d77"
|
32
|
+
}')
|
33
|
+
end
|
8
34
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
require File.expand_path(File.dirname(__FILE__) + '/rgigya_shared_examples.rb')
|
3
|
+
|
4
|
+
describe "RGigyaSecure" do
|
5
|
+
before :each do
|
6
|
+
RGigya.config({
|
7
|
+
:api_key => GIGYA_API_KEY,
|
8
|
+
:api_secret => GIGYA_API_SECRET,
|
9
|
+
:use_ssl => true,
|
10
|
+
:domain => "us1"
|
11
|
+
})
|
12
|
+
@protocol = "https"
|
13
|
+
@method = "GET"
|
14
|
+
end
|
15
|
+
|
16
|
+
|
17
|
+
it_behaves_like RGigya
|
18
|
+
end
|
@@ -0,0 +1,315 @@
|
|
1
|
+
shared_examples_for RGigya do
|
2
|
+
it "should use the socialize url when making a socialize api call" do
|
3
|
+
RGigya.stub(:required_parameters) {
|
4
|
+
''
|
5
|
+
}
|
6
|
+
# we pass in the "_" replaced with "." already
|
7
|
+
url = RGigya.build_url("socialize.getUserInfo","#{@method}",{})
|
8
|
+
url.should match(/#{@protocol}:\/\/socialize.us1.gigya.com/)
|
9
|
+
end
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
it "should use the gm url when making a game mechanic api call" do
|
14
|
+
RGigya.stub(:required_parameters) {
|
15
|
+
''
|
16
|
+
}
|
17
|
+
# we pass in the "_" replaced with "." already
|
18
|
+
url = RGigya.build_url("gm.notifyAction","#{@method}",{})
|
19
|
+
url.should match(/#{@protocol}:\/\/gm.us1.gigya.com/)
|
20
|
+
end
|
21
|
+
|
22
|
+
|
23
|
+
it "should use the comments url when making a comment api call" do
|
24
|
+
RGigya.stub(:required_parameters) {
|
25
|
+
''
|
26
|
+
}
|
27
|
+
# we pass in the "_" replaced with "." already
|
28
|
+
url = RGigya.build_url("comments.getTopStreams","#{@method}",{})
|
29
|
+
url.should match(/#{@protocol}:\/\/comments.us1.gigya.com/)
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should use the accounts url when making an accounts api call" do
|
33
|
+
RGigya.stub(:required_parameters) {
|
34
|
+
''
|
35
|
+
}
|
36
|
+
# we pass in the "_" replaced with "." already
|
37
|
+
url = RGigya.build_url("accounts.getPolicies","#{@method}",{})
|
38
|
+
url.should match(/#{@protocol}:\/\/accounts.us1.gigya.com/)
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should use the reports url when making a reports api call" do
|
42
|
+
RGigya.stub(:required_parameters) {
|
43
|
+
''
|
44
|
+
}
|
45
|
+
# we pass in the "_" replaced with "." already
|
46
|
+
url = RGigya.build_url("reports.getChatStats","#{@method}",{})
|
47
|
+
url.should match(/#{@protocol}:\/\/reports.us1.gigya.com/)
|
48
|
+
end
|
49
|
+
|
50
|
+
|
51
|
+
it "should use the chats url when making a chats api call" do
|
52
|
+
RGigya.stub(:required_parameters) {
|
53
|
+
''
|
54
|
+
}
|
55
|
+
# we pass in the "_" replaced with "." already
|
56
|
+
url = RGigya.build_url("chat.getMessages","#{@method}",{})
|
57
|
+
url.should match(/#{@protocol}:\/\/chat.us1.gigya.com/)
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should use the ds url when making a data store api call" do
|
61
|
+
RGigya.stub(:required_parameters) {
|
62
|
+
''
|
63
|
+
}
|
64
|
+
# we pass in the "_" replaced with "." already
|
65
|
+
url = RGigya.build_url("ds.get","#{@method}",{})
|
66
|
+
url.should match(/#{@protocol}:\/\/ds.us1.gigya.com/)
|
67
|
+
end
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
it "should raise a bad param error if UID is nil" do
|
72
|
+
expect {
|
73
|
+
RGigya.build_url('socialize.getUserInfo', "#{@method}",{:uid => nil})
|
74
|
+
}.to raise_error(RGigya::UIDParamIsNil)
|
75
|
+
end
|
76
|
+
|
77
|
+
it "should raise a bad param error if siteUID is nil" do
|
78
|
+
expect {
|
79
|
+
RGigya.build_url('socialize.getUserInfo', "#{@method}",{:siteUID => nil})
|
80
|
+
}.to raise_error(RGigya::SiteUIDParamIsNil)
|
81
|
+
end
|
82
|
+
|
83
|
+
it "should fill in the required parameters on request" do
|
84
|
+
# we pass in the "_" replaced with "." already
|
85
|
+
params = RGigya.required_parameters
|
86
|
+
params.should match(/apiKey=#{Regexp.escape(CGI.escape(GIGYA_API_KEY))}/)
|
87
|
+
params.should match(/secret=#{Regexp.escape(CGI.escape(GIGYA_API_SECRET))}/)
|
88
|
+
params.should match(/format=json/)
|
89
|
+
end
|
90
|
+
|
91
|
+
it "should succeed with a result code of 0 from gigya" do
|
92
|
+
params = RGigya.check_for_errors({'errorCode' => 0})
|
93
|
+
params.should have_key('errorCode')
|
94
|
+
end
|
95
|
+
|
96
|
+
|
97
|
+
it "should return nil and not raise an error with a limit reached error" do
|
98
|
+
results = RGigya.check_for_errors({'errorCode' => 400124})
|
99
|
+
results.should be_nil
|
100
|
+
end
|
101
|
+
|
102
|
+
it "should raise an error when we pass in a bad parameter" do
|
103
|
+
expect {
|
104
|
+
RGigya.check_for_errors({
|
105
|
+
'errorCode' => 400002
|
106
|
+
})
|
107
|
+
}.to raise_error(RGigya::BadParamsOrMethodName)
|
108
|
+
end
|
109
|
+
|
110
|
+
it "should raise an error when an errorcode other than 0,400002, or 400124 is returned" do
|
111
|
+
# Buffering the log
|
112
|
+
buffer = StringIO.new
|
113
|
+
$stdout = buffer
|
114
|
+
expect {
|
115
|
+
RGigya.check_for_errors({
|
116
|
+
'errorCode' => 4034934
|
117
|
+
})
|
118
|
+
}.to raise_error(RGigya::ErrorCodeReturned)
|
119
|
+
$stdout = STDOUT
|
120
|
+
end
|
121
|
+
|
122
|
+
it "should report method missing if method does not start with socialize" do
|
123
|
+
expect {
|
124
|
+
RGigya.method_missing(:abc,{})
|
125
|
+
}.to raise_error(NameError)
|
126
|
+
end
|
127
|
+
|
128
|
+
|
129
|
+
it "should report method missing if method does not start with gm" do
|
130
|
+
expect {
|
131
|
+
RGigya.method_missing(:abc,{})
|
132
|
+
}.to raise_error(NameError)
|
133
|
+
end
|
134
|
+
|
135
|
+
|
136
|
+
it "should report method missing if method does not start with socialize,gm, accounts,reports, chat,ds or comments" do
|
137
|
+
expect {
|
138
|
+
RGigya.method_missing(:abc,{})
|
139
|
+
}.to raise_error(NameError)
|
140
|
+
end
|
141
|
+
|
142
|
+
it "should not respond to method starting without socialize,gm, accounts,reports, chat,ds or comments" do
|
143
|
+
RGigya.respond_to?(:abc,false).should be_false
|
144
|
+
end
|
145
|
+
|
146
|
+
it "should respond to method starting with socialize" do
|
147
|
+
RGigya.respond_to?(:socialize_getUserInfo,false).should be_true
|
148
|
+
end
|
149
|
+
|
150
|
+
|
151
|
+
it "should respond to method starting with gm" do
|
152
|
+
RGigya.respond_to?(:gm_notifyAction,false).should be_true
|
153
|
+
end
|
154
|
+
|
155
|
+
it "should respond_to method starting with comments" do
|
156
|
+
RGigya.respond_to?(:comments_getComments,false).should be_true
|
157
|
+
end
|
158
|
+
|
159
|
+
it "should respond_to method starting with accounts" do
|
160
|
+
RGigya.respond_to?(:accounts_getPolicies,false).should be_true
|
161
|
+
end
|
162
|
+
|
163
|
+
it "should respond_to method starting with reports" do
|
164
|
+
RGigya.respond_to?(:reports_getChatStats,false).should be_true
|
165
|
+
end
|
166
|
+
|
167
|
+
it "should respond_to method starting with chat" do
|
168
|
+
RGigya.respond_to?(:chat_getMessages,false).should be_true
|
169
|
+
end
|
170
|
+
|
171
|
+
it "should respond_to method starting with ds" do
|
172
|
+
RGigya.respond_to?(:ds_get,false).should be_true
|
173
|
+
end
|
174
|
+
|
175
|
+
|
176
|
+
it "should print log to standard out" do
|
177
|
+
str = "This should print to the screen"
|
178
|
+
buffer = StringIO.new
|
179
|
+
$stdout = buffer
|
180
|
+
RGigya.log(str)
|
181
|
+
$stdout = STDOUT
|
182
|
+
buffer.rewind
|
183
|
+
buffer.read.should == str + "\n"
|
184
|
+
end
|
185
|
+
|
186
|
+
|
187
|
+
it "should print log to standard out" do
|
188
|
+
# buffer the input and check
|
189
|
+
str = "This should print to the screen"
|
190
|
+
buffer = StringIO.new
|
191
|
+
$stdout = buffer
|
192
|
+
RGigya.log(str)
|
193
|
+
$stdout = STDOUT
|
194
|
+
buffer.rewind
|
195
|
+
buffer.read.should == str + "\n"
|
196
|
+
end
|
197
|
+
|
198
|
+
|
199
|
+
it "should log to the Rails log if rails exists" do
|
200
|
+
# Mock and Stub Rails.logger.info
|
201
|
+
Rails = mock("Rails")
|
202
|
+
Rails.stub(:logger) {
|
203
|
+
logger = mock("Logger");
|
204
|
+
logger.stub(:info) do |str|
|
205
|
+
puts "mocked_data=#{str}"
|
206
|
+
end
|
207
|
+
logger
|
208
|
+
}
|
209
|
+
|
210
|
+
# buffer the input and check
|
211
|
+
str = "This should print to the screen"
|
212
|
+
buffer = StringIO.new
|
213
|
+
$stdout = buffer
|
214
|
+
RGigya.log(str)
|
215
|
+
$stdout = STDOUT
|
216
|
+
buffer.rewind
|
217
|
+
buffer.read.should == "mocked_data=" + str + "\n"
|
218
|
+
# Remove the rails object so it doesn't interfere with tests below
|
219
|
+
Object.send(:remove_const, :Rails)
|
220
|
+
end
|
221
|
+
|
222
|
+
it "should return a result of false if we pass a bad method" do
|
223
|
+
HTTParty.stub(:get) do |url,options|
|
224
|
+
nil
|
225
|
+
end
|
226
|
+
|
227
|
+
RGigya.parse_results("socialize_notAMethod",{}).should be_false
|
228
|
+
end
|
229
|
+
|
230
|
+
it "should raise json error if gigya returns bad json" do
|
231
|
+
HTTParty.stub(:get) do |url,options|
|
232
|
+
Response = mock("Response")
|
233
|
+
Response.stub(:body) {
|
234
|
+
'{'
|
235
|
+
}
|
236
|
+
Response
|
237
|
+
end
|
238
|
+
HTTParty.stub(:post) do |url,options|
|
239
|
+
Response = mock("Response")
|
240
|
+
Response.stub(:body) {
|
241
|
+
'{'
|
242
|
+
}
|
243
|
+
Response
|
244
|
+
end
|
245
|
+
|
246
|
+
|
247
|
+
expect {
|
248
|
+
RGigya.parse_results("socialize_notAMethod",{}).should be_false
|
249
|
+
}.to raise_error(RGigya::JSONParseError)
|
250
|
+
end
|
251
|
+
|
252
|
+
|
253
|
+
it "should raise a response error if the gigya call fails" do
|
254
|
+
HTTParty.stub(:get) do |url,options|
|
255
|
+
raise SocketError
|
256
|
+
end
|
257
|
+
HTTParty.stub(:post) do |url,options|
|
258
|
+
raise SocketError
|
259
|
+
end
|
260
|
+
|
261
|
+
expect {
|
262
|
+
RGigya.parse_results("socialize_notAMethod",{}).should be_false
|
263
|
+
}.to raise_error(RGigya::ResponseError)
|
264
|
+
end
|
265
|
+
|
266
|
+
it "should raise a response error if the gigya call times out" do
|
267
|
+
HTTParty.stub(:get) do |url,options|
|
268
|
+
raise Timeout::Error
|
269
|
+
end
|
270
|
+
HTTParty.stub(:post) do |url,options|
|
271
|
+
raise Timeout::Error
|
272
|
+
end
|
273
|
+
|
274
|
+
expect {
|
275
|
+
RGigya.parse_results("socialize_notAMethod",{}).should be_false
|
276
|
+
}.to raise_error(RGigya::ResponseError)
|
277
|
+
|
278
|
+
end
|
279
|
+
|
280
|
+
|
281
|
+
# Actual tests that modify the gigya account below
|
282
|
+
|
283
|
+
it "should login a user" do
|
284
|
+
|
285
|
+
userInfo = {
|
286
|
+
'nickname' => 'Gigems',
|
287
|
+
'email' => 'ralph@cloudspace.com',
|
288
|
+
'firstName' => 'Ralph',
|
289
|
+
'lastName' => 'Masterson'
|
290
|
+
}
|
291
|
+
|
292
|
+
response = RGigya.socialize_notifyLogin({
|
293
|
+
:siteUID => '1',
|
294
|
+
:userInfo => userInfo.to_json
|
295
|
+
})
|
296
|
+
end
|
297
|
+
|
298
|
+
it "should register a user" do
|
299
|
+
uid = get_uid
|
300
|
+
RGigya.socialize_notifyRegistration({
|
301
|
+
:UID => uid,
|
302
|
+
:siteUID => '1',
|
303
|
+
})
|
304
|
+
|
305
|
+
end
|
306
|
+
|
307
|
+
it "should get the users info", :user_info => true do
|
308
|
+
uid = get_uid
|
309
|
+
response = RGigya.socialize_getUserInfo({
|
310
|
+
'UID' => uid,
|
311
|
+
})
|
312
|
+
response['nickname'].should match 'Gigems'
|
313
|
+
end
|
314
|
+
|
315
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
require File.expand_path(File.dirname(__FILE__) + '/rgigya_shared_examples.rb')
|
3
|
+
|
4
|
+
describe "RGigyaSignature" do
|
5
|
+
before :each do
|
6
|
+
RGigya.config({
|
7
|
+
:api_key => GIGYA_API_KEY,
|
8
|
+
:api_secret => GIGYA_API_SECRET,
|
9
|
+
:use_ssl => false,
|
10
|
+
:domain => "us1"
|
11
|
+
})
|
12
|
+
@protocol = "http"
|
13
|
+
@method = "POST"
|
14
|
+
end
|
15
|
+
|
16
|
+
|
17
|
+
it_behaves_like RGigya
|
18
|
+
|
19
|
+
it "should verify signature after successful login" do
|
20
|
+
userInfo = {
|
21
|
+
'nickname' => 'Gigems',
|
22
|
+
'email' => 'ralph@cloudspace.com',
|
23
|
+
'firstName' => 'Ralph',
|
24
|
+
'lastName' => 'Masterson'
|
25
|
+
}
|
26
|
+
|
27
|
+
response = RGigya.socialize_notifyLogin({
|
28
|
+
:siteUID => '1',
|
29
|
+
:userInfo => userInfo.to_json
|
30
|
+
})
|
31
|
+
|
32
|
+
RGigya::SigUtils::validate_user_signature(response['UID'], response['signatureTimestamp'], response['UIDSignature']).should be_true
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
# Note: I stub everything here including the signature so this test really isn't valid
|
37
|
+
# But, it explains how it works
|
38
|
+
it "should verify friends signature after successful api call" do
|
39
|
+
RGigya.stub(:socialize_getFriendsInfo) do |url,options|
|
40
|
+
# this method is in helpers.rb
|
41
|
+
sample_frends_json_data
|
42
|
+
end
|
43
|
+
|
44
|
+
response = RGigya.socialize_getFriendsInfo({
|
45
|
+
:uid => '1',
|
46
|
+
:signIDs => true
|
47
|
+
})
|
48
|
+
|
49
|
+
friend = response['friends'].first
|
50
|
+
|
51
|
+
RGigya::SigUtils::validate_friend_signature("1", friend['signatureTimestamp'], friend['UID'], friend['friendshipSignature']).should be_true
|
52
|
+
end
|
53
|
+
|
54
|
+
|
55
|
+
# Not much of test here because the signature always change
|
56
|
+
# Lets just run it to make sure its not throwing any errors
|
57
|
+
it "should return the value for the dynamic session cookie" do
|
58
|
+
two_hours_from_now = (Time.now + (60*60*2)).utc.strftime("%s").to_i
|
59
|
+
RGigya::SigUtils::get_dynamic_session_signature("111111111", two_hours_from_now).should_not == ""
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -4,9 +4,8 @@ RSpec.configure do |config|
|
|
4
4
|
# some (optional) config here
|
5
5
|
config.include Helpers
|
6
6
|
|
7
|
-
|
8
|
-
#
|
9
|
-
|
10
|
-
|
11
|
-
|
7
|
+
# To verify Values
|
8
|
+
# GIGYA_API_KEY = "<add api key here>"
|
9
|
+
# GIGYA_API_SECRET = "<add api secret here>"
|
10
|
+
|
12
11
|
end
|
data/test/dummy/Gemfile
CHANGED
data/test/dummy/Gemfile.lock
CHANGED
@@ -49,13 +49,12 @@ GEM
|
|
49
49
|
jquery-rails (2.2.1)
|
50
50
|
railties (>= 3.0, < 5.0)
|
51
51
|
thor (>= 0.14, < 2.0)
|
52
|
-
json (1.
|
53
|
-
mail (2.5.
|
54
|
-
i18n (>= 0.4.0)
|
52
|
+
json (1.8.0)
|
53
|
+
mail (2.5.4)
|
55
54
|
mime-types (~> 1.16)
|
56
55
|
treetop (~> 1.4.8)
|
57
|
-
mime-types (1.
|
58
|
-
multi_json (1.7.
|
56
|
+
mime-types (1.23)
|
57
|
+
multi_json (1.7.3)
|
59
58
|
multi_xml (0.5.3)
|
60
59
|
polyglot (0.3.3)
|
61
60
|
rack (1.4.5)
|
@@ -83,9 +82,9 @@ GEM
|
|
83
82
|
rake (10.0.4)
|
84
83
|
rdoc (3.12.2)
|
85
84
|
json (~> 1.4)
|
86
|
-
rgigya (
|
85
|
+
rgigya (1.0.2)
|
87
86
|
httparty (~> 0.11.0)
|
88
|
-
sass (3.2.
|
87
|
+
sass (3.2.9)
|
89
88
|
sass-rails (3.2.6)
|
90
89
|
railties (~> 3.2.0)
|
91
90
|
sass (>= 3.1.10)
|
@@ -97,12 +96,12 @@ GEM
|
|
97
96
|
tilt (~> 1.1, != 1.3.0)
|
98
97
|
sqlite3 (1.3.7)
|
99
98
|
thor (0.18.1)
|
100
|
-
tilt (1.
|
99
|
+
tilt (1.4.1)
|
101
100
|
treetop (1.4.12)
|
102
101
|
polyglot
|
103
102
|
polyglot (>= 0.3.1)
|
104
103
|
tzinfo (0.3.37)
|
105
|
-
uglifier (2.0
|
104
|
+
uglifier (2.1.0)
|
106
105
|
execjs (>= 0.3.0)
|
107
106
|
multi_json (~> 1.0, >= 1.0.2)
|
108
107
|
|
@@ -38,5 +38,9 @@ end
|
|
38
38
|
|
39
39
|
|
40
40
|
# The Gigya api key and secret need to be set here
|
41
|
-
|
42
|
-
|
41
|
+
RGigya.config({
|
42
|
+
:api_key => "<add api key here>",
|
43
|
+
:api_secret => "<add api secret here>",
|
44
|
+
:use_ssl => false,
|
45
|
+
:domain => "us1"
|
46
|
+
})
|