facebook_events 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +20 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +40 -0
- data/Guardfile +10 -0
- data/README.md +27 -0
- data/Rakefile +2 -0
- data/facebook_events.gemspec +20 -0
- data/lib/facebook_events.rb +33 -0
- data/lib/facebook_events/event.rb +15 -0
- data/lib/facebook_events/version.rb +3 -0
- data/spec/facebook_events_spec.rb +53 -0
- data/spec/spec_helper.rb +1 -0
- metadata +93 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
facebook_events (0.0.1)
|
5
|
+
mini_fb (>= 1.1.7)
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: http://rubygems.org/
|
9
|
+
specs:
|
10
|
+
diff-lcs (1.1.3)
|
11
|
+
ffi (1.0.11)
|
12
|
+
guard (1.0.1)
|
13
|
+
ffi (>= 0.5.0)
|
14
|
+
thor (~> 0.14.6)
|
15
|
+
guard-rspec (0.7.0)
|
16
|
+
guard (>= 0.10.0)
|
17
|
+
hashie (1.2.0)
|
18
|
+
mime-types (1.18)
|
19
|
+
mini_fb (1.1.7)
|
20
|
+
hashie
|
21
|
+
rest-client
|
22
|
+
rest-client (1.6.7)
|
23
|
+
mime-types (>= 1.16)
|
24
|
+
rspec (2.9.0)
|
25
|
+
rspec-core (~> 2.9.0)
|
26
|
+
rspec-expectations (~> 2.9.0)
|
27
|
+
rspec-mocks (~> 2.9.0)
|
28
|
+
rspec-core (2.9.0)
|
29
|
+
rspec-expectations (2.9.1)
|
30
|
+
diff-lcs (~> 1.1.3)
|
31
|
+
rspec-mocks (2.9.0)
|
32
|
+
thor (0.14.6)
|
33
|
+
|
34
|
+
PLATFORMS
|
35
|
+
ruby
|
36
|
+
|
37
|
+
DEPENDENCIES
|
38
|
+
facebook_events!
|
39
|
+
guard-rspec
|
40
|
+
rspec
|
data/Guardfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# FacebookEvents
|
2
|
+
|
3
|
+
FacebookEvents pulls Event data from the Facebook graph for a particular user or page id. Events are returned as an array.
|
4
|
+
|
5
|
+
## Setup
|
6
|
+
|
7
|
+
[Register your App on Facebook](https://developers.facebook.com/apps)
|
8
|
+
|
9
|
+
Define your constants for Facebook APP ID (API Key) and APP Secret:
|
10
|
+
|
11
|
+
```
|
12
|
+
FacebookEvents::FACEBOOK_APP_ID = '###'
|
13
|
+
FacebookEvents::FACEBOOK_SECRET = '###'
|
14
|
+
```
|
15
|
+
|
16
|
+
## Use
|
17
|
+
|
18
|
+
```
|
19
|
+
events = FacebookEvents.new(facebook_id)
|
20
|
+
events.list
|
21
|
+
events.list.first
|
22
|
+
```
|
23
|
+
Returns an array of Events with attributes for facebook_id, name, start_time, end_time, location, description, updated_time.
|
24
|
+
|
25
|
+
### Dependencies
|
26
|
+
|
27
|
+
Requires the [MiniFB gem](https://github.com/appoxy/mini_fb).
|
data/Rakefile
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require File.expand_path('../lib/facebook_events/version', __FILE__)
|
3
|
+
|
4
|
+
Gem::Specification.new do |gem|
|
5
|
+
gem.authors = ["Kenzie Campbell"]
|
6
|
+
gem.email = ["kenzie@route19.com"]
|
7
|
+
gem.summary = "Fetch an array of Facebook Events by id."
|
8
|
+
gem.description = "Given a Facebook page or user id, this gem will return an array of its events."
|
9
|
+
|
10
|
+
gem.files = `git ls-files`.split($\)
|
11
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
12
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
13
|
+
gem.name = "facebook_events"
|
14
|
+
gem.require_paths = ["lib"]
|
15
|
+
gem.version = FacebookEvents::VERSION
|
16
|
+
|
17
|
+
gem.add_dependency('mini_fb', '>= 1.1.7')
|
18
|
+
gem.add_development_dependency('rspec')
|
19
|
+
gem.add_development_dependency('guard-rspec')
|
20
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
class FacebookEvents
|
2
|
+
|
3
|
+
require 'mini_fb'
|
4
|
+
require 'facebook_events/event'
|
5
|
+
require "facebook_events/version"
|
6
|
+
|
7
|
+
# Get events for a Facebook page or user by id.
|
8
|
+
# Requires environment variables for Facebook APP ID and APP Secret:
|
9
|
+
# FacebookEvents::FACEBOOK_APP_ID = ...
|
10
|
+
# FacebookEvents::FACEBOOK_SECRET = ...
|
11
|
+
|
12
|
+
attr_reader :facebook_id, :auth_token, :list
|
13
|
+
|
14
|
+
def initialize(facebook_id)
|
15
|
+
@facebook_id = facebook_id
|
16
|
+
@auth_token = get_auth_token
|
17
|
+
@list = get_events
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def get_auth_token
|
23
|
+
MiniFB.authenticate_as_app(FACEBOOK_APP_ID, FACEBOOK_SECRET)['access_token']
|
24
|
+
end
|
25
|
+
|
26
|
+
def get_events
|
27
|
+
list = MiniFB.get(@auth_token, @facebook_id, :type => 'events').data
|
28
|
+
list.map do |e|
|
29
|
+
FacebookEvents::Event.new(MiniFB.get(@auth_token, e.id))
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class FacebookEvents::Event
|
2
|
+
|
3
|
+
attr_reader :facebook_id, :name, :start_time, :end_time, :location, :description, :updated_time
|
4
|
+
|
5
|
+
def initialize(event)
|
6
|
+
@facebook_id = event.id
|
7
|
+
@name = event.name
|
8
|
+
@start_time = event.start_time
|
9
|
+
@end_time = event.end_time
|
10
|
+
@location = event.location
|
11
|
+
@description = event.description
|
12
|
+
@updated_time = event.updated_time
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
ID = 'AlMacInnisSportsCentre'
|
4
|
+
|
5
|
+
describe FacebookEvents do
|
6
|
+
|
7
|
+
a = FacebookEvents.new(ID)
|
8
|
+
|
9
|
+
it "has a facebook id" do
|
10
|
+
a.facebook_id.should == ID
|
11
|
+
end
|
12
|
+
|
13
|
+
it "sets up authorization" do
|
14
|
+
a.auth_token.class.should == String
|
15
|
+
end
|
16
|
+
|
17
|
+
describe "list" do
|
18
|
+
l = a.list
|
19
|
+
|
20
|
+
it "returns an array" do
|
21
|
+
l.class.should == Array
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "first" do
|
25
|
+
f = l.first
|
26
|
+
|
27
|
+
it "is an Event" do
|
28
|
+
f.class.should == FacebookEvents::Event
|
29
|
+
end
|
30
|
+
|
31
|
+
it "has a facebook id" do
|
32
|
+
f.facebook_id.should == '348500465212758'
|
33
|
+
end
|
34
|
+
|
35
|
+
it "has a name" do
|
36
|
+
f.name.should == "Father's Day Fundraiser"
|
37
|
+
end
|
38
|
+
|
39
|
+
it "has a start_time" do
|
40
|
+
f.start_time.should == "2012-06-16T16:00:00"
|
41
|
+
end
|
42
|
+
|
43
|
+
it "has a description" do
|
44
|
+
f.description.should == "The Al MacInnis Sports Centre is hosting a fundraiser on Saturday, June 16th from 8pm - 12am. Live entertainment, hot & cold hors d\u2019oeuvres, game tables, horse shoes, door prizes. All of this will take place in heated tents with an ambience that will set the stage. Entertainment by Billy Spears, Gary Trenholm & Stephen Doiron.\n\nTickets are $40 each and can be purchased by contacting Shannon MacDougall at 631-1401. Visa & M/C accepted."
|
45
|
+
end
|
46
|
+
|
47
|
+
it "has an updated_time" do
|
48
|
+
f.updated_time.should == "2012-04-27T12:13:07+0000"
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'facebook_events'
|
metadata
ADDED
@@ -0,0 +1,93 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: facebook_events
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Kenzie Campbell
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-05-02 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: mini_fb
|
16
|
+
requirement: &70154877066300 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 1.1.7
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70154877066300
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rspec
|
27
|
+
requirement: &70154877065780 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70154877065780
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: guard-rspec
|
38
|
+
requirement: &70154877065260 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70154877065260
|
47
|
+
description: Given a Facebook page or user id, this gem will return an array of its
|
48
|
+
events.
|
49
|
+
email:
|
50
|
+
- kenzie@route19.com
|
51
|
+
executables: []
|
52
|
+
extensions: []
|
53
|
+
extra_rdoc_files: []
|
54
|
+
files:
|
55
|
+
- .gitignore
|
56
|
+
- Gemfile
|
57
|
+
- Gemfile.lock
|
58
|
+
- Guardfile
|
59
|
+
- README.md
|
60
|
+
- Rakefile
|
61
|
+
- facebook_events.gemspec
|
62
|
+
- lib/facebook_events.rb
|
63
|
+
- lib/facebook_events/event.rb
|
64
|
+
- lib/facebook_events/version.rb
|
65
|
+
- spec/facebook_events_spec.rb
|
66
|
+
- spec/spec_helper.rb
|
67
|
+
homepage:
|
68
|
+
licenses: []
|
69
|
+
post_install_message:
|
70
|
+
rdoc_options: []
|
71
|
+
require_paths:
|
72
|
+
- lib
|
73
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ! '>='
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '0'
|
79
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
80
|
+
none: false
|
81
|
+
requirements:
|
82
|
+
- - ! '>='
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '0'
|
85
|
+
requirements: []
|
86
|
+
rubyforge_project:
|
87
|
+
rubygems_version: 1.8.11
|
88
|
+
signing_key:
|
89
|
+
specification_version: 3
|
90
|
+
summary: Fetch an array of Facebook Events by id.
|
91
|
+
test_files:
|
92
|
+
- spec/facebook_events_spec.rb
|
93
|
+
- spec/spec_helper.rb
|