ruby_fgraph 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
data/LICENSE ADDED
@@ -0,0 +1,3 @@
1
+ == FGraph
2
+
3
+ Put appropriate LICENSE for your project here.
data/README ADDED
@@ -0,0 +1,4 @@
1
+ Examaple using rails 3 on http://github.com/randx/Facebook-Graph-Gem-Example
2
+
3
+ Installing as gem
4
+ - sudo gem install ruby_fgraph
data/Rakefile ADDED
@@ -0,0 +1,45 @@
1
+ #
2
+ # To change this template, choose Tools | Templates
3
+ # and open the template in the editor.
4
+
5
+
6
+ require 'rubygems'
7
+ require 'rake'
8
+ require 'rake/clean'
9
+ require 'rake/gempackagetask'
10
+ require 'rake/rdoctask'
11
+ require 'rake/testtask'
12
+
13
+ spec = Gem::Specification.new do |s|
14
+ s.name = 'ruby_fgraph'
15
+ s.version = '0.0.11'
16
+ s.has_rdoc = true
17
+ s.extra_rdoc_files = ['README', 'LICENSE']
18
+ s.summary = 'Your summary here'
19
+ s.description = s.summary
20
+ s.author = 'randx'
21
+ s.email = 'railsonweb@gmail.com'
22
+ # s.executables = ['your_executable_here']
23
+ s.files = %w(LICENSE README Rakefile) + Dir.glob("{bin,lib,spec}/**/*")
24
+ s.require_path = "lib"
25
+ # s.bindir = "bin"
26
+ end
27
+
28
+ Rake::GemPackageTask.new(spec) do |p|
29
+ p.gem_spec = spec
30
+ p.need_tar = true
31
+ p.need_zip = true
32
+ end
33
+
34
+ Rake::RDocTask.new do |rdoc|
35
+ files =['README', 'LICENSE', 'lib/**/*.rb']
36
+ rdoc.rdoc_files.add(files)
37
+ rdoc.main = "README" # page to start on
38
+ rdoc.title = "FGraph Docs"
39
+ rdoc.rdoc_dir = 'doc/rdoc' # rdoc output folder
40
+ rdoc.options << '--line-numbers'
41
+ end
42
+
43
+ Rake::TestTask.new do |t|
44
+ t.test_files = FileList['test/**/*.rb']
45
+ end
@@ -0,0 +1,5 @@
1
+ # Facebook Graph Api gem
2
+ module FGraph
3
+ end
4
+
5
+ require "ruby_fgraph/connection"
@@ -0,0 +1,84 @@
1
+ require "rubygems"
2
+ require "oauth2"
3
+ # Connection class
4
+ # for authentication
5
+ # and api queries
6
+ # based on oauth2 gem
7
+ module FGraph
8
+ class Connection
9
+ attr_writer :token
10
+
11
+ # Create Facebook connection object
12
+ # for future authorization
13
+ # and query requests
14
+ def initialize opt={}
15
+ @facebook_app = {
16
+ :api_url => "https://graph.facebook.com",
17
+ :app_id => "",
18
+ :app_secret => "",
19
+ :callback_url => "",
20
+ :access_token => "",
21
+ :scopes => 'email,offline_access,read_stream,user_about_me'
22
+ }
23
+ opt.each { |key, v| @facebook_app[key.to_sym] = v }
24
+ end
25
+
26
+ # check if connection
27
+ # authorized (get correct token)
28
+ def is_authorized?
29
+ valid_token? ? true : false
30
+ end
31
+
32
+ # get oauth2 client object
33
+ # for authorization
34
+ # so token can be recieved
35
+ def client
36
+ @client ||= OAuth2::Client.new @facebook_app[:app_id], @facebook_app[:app_secret], :site => @facebook_app[:api_url]
37
+ end
38
+
39
+ # get authorize url
40
+ # for redirection from app
41
+ def rails_authorize_redirect
42
+ client.web_server.authorize_url(
43
+ :redirect_uri => @facebook_app[:callback_url],
44
+ :scope => @facebook_app[:scopes]
45
+ )
46
+ end
47
+
48
+ # get token using code
49
+ # after auth passed
50
+ def accept_token code
51
+ token_obj = client.web_server.get_access_token(code, {:redirect_uri => @facebook_app[:callback_url]})
52
+ @token = token_obj.token
53
+ end
54
+
55
+ # get access token
56
+ # for auth queries
57
+ def get_access_token
58
+ @token
59
+ end
60
+
61
+ # check if token
62
+ # is valid
63
+ def valid_token?
64
+ begin
65
+ self.query
66
+ return true
67
+ rescue Exception => ex
68
+ return false
69
+ end
70
+ end
71
+
72
+ # authorization connect
73
+ # using token for future request
74
+ def auth_api_connect
75
+ @auth_api_connect ||= OAuth2::AccessToken.new client, @token
76
+ end
77
+
78
+ # get api response for query
79
+ # only for auth connections
80
+ def query string = '/me'
81
+ auth_api_connect.get(string)
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,33 @@
1
+ # To change this template, choose Tools | Templates
2
+ # and open the template in the editor.
3
+ require 'spec_helper'
4
+
5
+ describe FGraph::Connection do
6
+ before(:each) do
7
+ @valid_params = {
8
+ :app_id => '149291415089452',
9
+ :app_secret => '4e13073ded8bfb0cc3279e86811121b0'
10
+ }
11
+ @valid_token = "149291415089452|0167f243d68e03b3d7ed89dc-1642845171|HIVODHHm-i9Ho3ccAr7yzucn8hM" #paste valid token here
12
+
13
+ @f_connection = FGraph::Connection.new
14
+ @f_connection_valid = FGraph::Connection.new @valid_params
15
+ end
16
+
17
+ it "should create connection object even without params" do
18
+ @f_connection.class.name.should == "FGraph::Connection"
19
+ end
20
+
21
+ it "should return oauth2 client object" do
22
+ @f_connection.client.class.name.should == "OAuth2::Client"
23
+ end
24
+
25
+ it "should say that you are not authorized without token" do
26
+ @f_connection.is_authorized?.should == false
27
+ end
28
+
29
+ it "should pass validation of token if you provide correct one" do
30
+ @f_connection_valid.token = @valid_token
31
+ @f_connection_valid.is_authorized?.should == true
32
+ end
33
+ end
@@ -0,0 +1,9 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
+ require 'rubygems'
4
+ require 'ruby_fgraph'
5
+ require 'spec'
6
+ require 'spec/autorun'
7
+ Spec::Runner.configure do |config|
8
+ end
9
+
metadata ADDED
@@ -0,0 +1,69 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ruby_fgraph
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 11
9
+ version: 0.0.11
10
+ platform: ruby
11
+ authors:
12
+ - randx
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-09-29 00:00:00 +03:00
18
+ default_executable:
19
+ dependencies: []
20
+
21
+ description: Your summary here
22
+ email: railsonweb@gmail.com
23
+ executables: []
24
+
25
+ extensions: []
26
+
27
+ extra_rdoc_files:
28
+ - README
29
+ - LICENSE
30
+ files:
31
+ - LICENSE
32
+ - README
33
+ - Rakefile
34
+ - lib/ruby_fgraph.rb
35
+ - lib/ruby_fgraph/connection.rb
36
+ - spec/spec_helper.rb
37
+ - spec/ruby_fgraph/connection_spec.rb
38
+ has_rdoc: true
39
+ homepage:
40
+ licenses: []
41
+
42
+ post_install_message:
43
+ rdoc_options: []
44
+
45
+ require_paths:
46
+ - lib
47
+ required_ruby_version: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - ">="
50
+ - !ruby/object:Gem::Version
51
+ segments:
52
+ - 0
53
+ version: "0"
54
+ required_rubygems_version: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ segments:
59
+ - 0
60
+ version: "0"
61
+ requirements: []
62
+
63
+ rubyforge_project:
64
+ rubygems_version: 1.3.6
65
+ signing_key:
66
+ specification_version: 3
67
+ summary: Your summary here
68
+ test_files: []
69
+