fgraph 0.1.3 → 0.1.4
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.
- data/History +11 -0
- data/README.rdoc +4 -4
- data/VERSION.yml +1 -1
- data/lib/fgraph.rb +7 -7
- data/lib/fgraph/client.rb +2 -3
- data/lib/tasks/fgraph.rake +14 -0
- data/test/fgraph/client_test.rb +6 -9
- data/test/fgraph_test.rb +8 -9
- metadata +4 -3
    
        data/History
    CHANGED
    
    | @@ -1,3 +1,14 @@ | |
| 1 | 
            +
            v0.1.4 - May 22, 2010
         | 
| 2 | 
            +
              * Update rdoc, client_id should refer to Application ID instead of 
         | 
| 3 | 
            +
                API Key (as of OAuth v2)
         | 
| 4 | 
            +
              * Remove :app_id option from FGraph::Client
         | 
| 5 | 
            +
              
         | 
| 6 | 
            +
            v0.1.3 - May 21, 2010
         | 
| 7 | 
            +
              * Update rdoc
         | 
| 8 | 
            +
              
         | 
| 9 | 
            +
            v0.1.2 - May 20, 2010
         | 
| 10 | 
            +
              * Update rdoc
         | 
| 11 | 
            +
              
         | 
| 1 12 | 
             
            v0.1.1 - May 20, 2010
         | 
| 2 13 | 
             
              * Update rdoc
         | 
| 3 14 |  | 
    
        data/README.rdoc
    CHANGED
    
    | @@ -98,11 +98,11 @@ OAuth Application Access Token, required to access application anlytics data: | |
| 98 98 |  | 
| 99 99 | 
             
            === Insights
         | 
| 100 100 |  | 
| 101 | 
            -
              # https://graph.facebook.com/ | 
| 102 | 
            -
              FGraph.insights('[ | 
| 101 | 
            +
              # https://graph.facebook.com/client_id/insights?access_token=...
         | 
| 102 | 
            +
              FGraph.insights('[client_id]', '[app_access_token]')
         | 
| 103 103 |  | 
| 104 | 
            -
              # https://graph.facebook.com/ | 
| 105 | 
            -
              FGraph.insights('[ | 
| 104 | 
            +
              # https://graph.facebook.com/client_id/insights/application_api_call/day?access_token=...
         | 
| 105 | 
            +
              FGraph.insights('[client_id]', '[app_access_token]', :metric_path => 'application_api_call/day')
         | 
| 106 106 |  | 
| 107 107 | 
             
            === FGraph::Client
         | 
| 108 108 |  | 
    
        data/VERSION.yml
    CHANGED
    
    
    
        data/lib/fgraph.rb
    CHANGED
    
    | @@ -88,7 +88,7 @@ module FGraph | |
| 88 88 | 
             
              # user's behalf. Returns Oauth Authorization URL, redirect to this URL to allow user to authorize your
         | 
| 89 89 | 
             
              # application from Facebook.
         | 
| 90 90 | 
             
              #
         | 
| 91 | 
            -
              # <tt>client_id</tt> -  | 
| 91 | 
            +
              # <tt>client_id</tt> - Application ID
         | 
| 92 92 | 
             
              # <tt>redirect_uri</tt> - Needs to begin with your app's Connect URL. For instance, if your Connect URL 
         | 
| 93 93 | 
             
              # is http://www.example.com then your redirect URI could be http://www.example.com/oauth_redirect.
         | 
| 94 94 | 
             
              # <tt>scope (optional)</tt> -
         | 
| @@ -217,20 +217,20 @@ module FGraph | |
| 217 217 |  | 
| 218 218 | 
             
              # Download insights data for your application.
         | 
| 219 219 | 
             
              #
         | 
| 220 | 
            -
              #   # https://graph.facebook.com/ | 
| 221 | 
            -
              #   FGraph.insights('[ | 
| 220 | 
            +
              #   # https://graph.facebook.com/[client_id]/insights?access_token=...
         | 
| 221 | 
            +
              #   FGraph.insights('[client_id]', '[app_access_token]')
         | 
| 222 222 | 
             
              #
         | 
| 223 | 
            -
              #   # https://graph.facebook.com/ | 
| 224 | 
            -
              #   FGraph.insights('[ | 
| 223 | 
            +
              #   # https://graph.facebook.com/[client_id]/insights/application_api_call/day?access_token=...
         | 
| 224 | 
            +
              #   FGraph.insights('[client_id]', '[app_access_token]', :metric_path => 'application_api_call/day')
         | 
| 225 225 | 
             
              # 
         | 
| 226 226 | 
             
              # ==== Options
         | 
| 227 227 | 
             
              # * <tt>metric_path</tt> - e.g. application_api_calls/day
         | 
| 228 228 | 
             
              # * <tt>since</tt> - since (a unix timestamp or any date accepted by strtotime, e.g. yesterday)
         | 
| 229 229 | 
             
              # * <tt>until</tt> - until (a unix timestamp or any date accepted by strtotime, e.g. yesterday)
         | 
| 230 | 
            -
              def self.insights( | 
| 230 | 
            +
              def self.insights(client_id, app_access_token, options={})
         | 
| 231 231 | 
             
                metric_path = options.delete(:metric_path)
         | 
| 232 232 |  | 
| 233 | 
            -
                path = "/#{ | 
| 233 | 
            +
                path = "/#{client_id}/insights"
         | 
| 234 234 | 
             
                path += "/#{metric_path}" if metric_path
         | 
| 235 235 |  | 
| 236 236 | 
             
                self.perform_get(path, {
         | 
    
        data/lib/fgraph/client.rb
    CHANGED
    
    | @@ -11,9 +11,8 @@ module FGraph | |
| 11 11 | 
             
                # when calling respective Facebook Graph API methods.
         | 
| 12 12 | 
             
                # 
         | 
| 13 13 | 
             
                # ==== Options
         | 
| 14 | 
            -
                # * <tt>client_id</tt> - Application  | 
| 14 | 
            +
                # * <tt>client_id</tt> - Application ID
         | 
| 15 15 | 
             
                # * <tt>client_secret</tt> - Application Secret
         | 
| 16 | 
            -
                # * <tt>app_id</tt> - Application ID
         | 
| 17 16 | 
             
                # * <tt>access_token</tt> - Access token, required to publish to Facebook Graph or access
         | 
| 18 17 | 
             
                #   current user profile.
         | 
| 19 18 | 
             
                # * <tt>app_access_token</tt> - Application access token, required to access Facebook insights.
         | 
| @@ -89,7 +88,7 @@ module FGraph | |
| 89 88 | 
             
                  unless self.options[:app_access_token]
         | 
| 90 89 | 
             
                    self.options[:app_access_token] = self.oauth_app_access_token
         | 
| 91 90 | 
             
                  end
         | 
| 92 | 
            -
                  FGraph.insights(self.options[: | 
| 91 | 
            +
                  FGraph.insights(self.options[:client_id], self.options[:app_access_token], options)
         | 
| 93 92 | 
             
                end
         | 
| 94 93 |  | 
| 95 94 | 
             
                def method_missing(name, *args, &block)
         | 
| @@ -0,0 +1,14 @@ | |
| 1 | 
            +
            require 'fileutils'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            namespace :fgraph do
         | 
| 4 | 
            +
              desc "Create fgraph.yml configuration file in Rails config folder"
         | 
| 5 | 
            +
                task :setup => :environment do
         | 
| 6 | 
            +
                  fgraph_config = File.join(RAILS_ROOT, "config", "fgraph.yml")
         | 
| 7 | 
            +
                  unless File.exist?(fgraph_config)
         | 
| 8 | 
            +
                    
         | 
| 9 | 
            +
                  else
         | 
| 10 | 
            +
                    puts "#{RAILS_ROOT}/config/fgraph.yml already exists."
         | 
| 11 | 
            +
                  end
         | 
| 12 | 
            +
                end
         | 
| 13 | 
            +
              end
         | 
| 14 | 
            +
            end
         | 
    
        data/test/fgraph/client_test.rb
    CHANGED
    
    | @@ -1,9 +1,8 @@ | |
| 1 1 | 
             
            require 'test_helper'
         | 
| 2 2 |  | 
| 3 3 | 
             
            class ClientTest < Test::Unit::TestCase
         | 
| 4 | 
            -
              FACEBOOK_API_KEY = '878116c4a4b79f25e4beb97ab096cc92'
         | 
| 5 | 
            -
              FACEBOOK_APP_SECRET = '41f0e7ee8b6501dca1610de9926477c4'
         | 
| 6 4 | 
             
              FACEBOOK_APP_ID = '112157085578818'
         | 
| 5 | 
            +
              FACEBOOK_APP_SECRET = '41f0e7ee8b6501dca1610de9926477c4'
         | 
| 7 6 | 
             
              FACEBOOK_OAUTH_REDIRECT_URI = 'http://www.example.com/oauth_redirect'
         | 
| 8 7 | 
             
              FACEBOOK_OAUTH_CODE = '2.0eXhebBSDTpoe08qIaocNQ__.3600.1273748400-503153225|caqygNb5Gobz6lpj3HXjlthDxds.'
         | 
| 9 8 | 
             
              FACEBOOK_OAUTH_ACCESS_TOKEN = "115187085478818|rDIv_5zgjCSM_fWBv5Z-lQr5gFk."
         | 
| @@ -11,7 +10,7 @@ class ClientTest < Test::Unit::TestCase | |
| 11 10 |  | 
| 12 11 | 
             
              def fb_client
         | 
| 13 12 | 
             
                FGraph::Client.new(
         | 
| 14 | 
            -
                  :client_id =>  | 
| 13 | 
            +
                  :client_id => FACEBOOK_APP_ID,
         | 
| 15 14 | 
             
                  :client_secret => FACEBOOK_APP_SECRET,
         | 
| 16 15 | 
             
                  :access_token => FACEBOOK_OAUTH_ACCESS_TOKEN
         | 
| 17 16 | 
             
                )
         | 
| @@ -19,7 +18,7 @@ class ClientTest < Test::Unit::TestCase | |
| 19 18 |  | 
| 20 19 | 
             
              context "FGraph::Client#oauth_authorize_url" do
         | 
| 21 20 | 
             
                should "call FGraph.oauth_authorize_url with :client_id option" do
         | 
| 22 | 
            -
                  FGraph.expects(:oauth_authorize_url).with( | 
| 21 | 
            +
                  FGraph.expects(:oauth_authorize_url).with(FACEBOOK_APP_ID, FACEBOOK_OAUTH_REDIRECT_URI, {
         | 
| 23 22 | 
             
                    :scope => 'publish_stream'
         | 
| 24 23 | 
             
                  })
         | 
| 25 24 | 
             
                  fb_client.oauth_authorize_url(FACEBOOK_OAUTH_REDIRECT_URI, :scope => 'publish_stream')
         | 
| @@ -28,7 +27,7 @@ class ClientTest < Test::Unit::TestCase | |
| 28 27 |  | 
| 29 28 | 
             
              context "FGraph::Client#oauth_access_token" do
         | 
| 30 29 | 
             
                should "call FGraph.oauth_access_token with :client_id and :client_secret options" do
         | 
| 31 | 
            -
                  FGraph.expects(:oauth_access_token).with( | 
| 30 | 
            +
                  FGraph.expects(:oauth_access_token).with(FACEBOOK_APP_ID, FACEBOOK_APP_SECRET, 
         | 
| 32 31 | 
             
                    :redirect_uri => FACEBOOK_OAUTH_REDIRECT_URI, :code => FACEBOOK_OAUTH_CODE)
         | 
| 33 32 |  | 
| 34 33 | 
             
                  fb_client.oauth_access_token(FACEBOOK_OAUTH_REDIRECT_URI, FACEBOOK_OAUTH_CODE)
         | 
| @@ -135,9 +134,8 @@ class ClientTest < Test::Unit::TestCase | |
| 135 134 | 
             
              end
         | 
| 136 135 |  | 
| 137 136 | 
             
              context "FGraph::Client#insights" do
         | 
| 138 | 
            -
                should "auto populate : | 
| 137 | 
            +
                should "auto populate :client_id and :oauth_app_access_token" do
         | 
| 139 138 | 
             
                  client = fb_client 
         | 
| 140 | 
            -
                  client.options[:app_id] = FACEBOOK_APP_ID
         | 
| 141 139 | 
             
                  client.options[:app_access_token] = FACEBOOK_OAUTH_APP_ACCESS_TOKEN
         | 
| 142 140 |  | 
| 143 141 | 
             
                  FGraph.expects(:insights).with(FACEBOOK_APP_ID, FACEBOOK_OAUTH_APP_ACCESS_TOKEN, {})
         | 
| @@ -146,9 +144,8 @@ class ClientTest < Test::Unit::TestCase | |
| 146 144 |  | 
| 147 145 | 
             
                should "auto retrieve :oauth_app_access_token option" do
         | 
| 148 146 | 
             
                  client = fb_client
         | 
| 149 | 
            -
                  
         | 
| 150 147 | 
             
                  client.expects(:oauth_app_access_token).returns(FACEBOOK_OAUTH_APP_ACCESS_TOKEN)
         | 
| 151 | 
            -
                  FGraph.expects(:insights).with( | 
| 148 | 
            +
                  FGraph.expects(:insights).with(FACEBOOK_APP_ID, FACEBOOK_OAUTH_APP_ACCESS_TOKEN, {
         | 
| 152 149 | 
             
                    :metric_path => 'application_api_calls/day'
         | 
| 153 150 | 
             
                  })
         | 
| 154 151 | 
             
                  client.insights(:metric_path => 'application_api_calls/day')
         | 
    
        data/test/fgraph_test.rb
    CHANGED
    
    | @@ -1,9 +1,8 @@ | |
| 1 1 | 
             
            require 'test_helper'
         | 
| 2 2 |  | 
| 3 3 | 
             
            class FGraphTest < Test::Unit::TestCase
         | 
| 4 | 
            -
              FACEBOOK_API_KEY = '878116c4a4b79f25e4beb97ab096cc92'
         | 
| 5 | 
            -
              FACEBOOK_APP_SECRET = '41f0e7ee8b6501dca1610de9926477c4'
         | 
| 6 4 | 
             
              FACEBOOK_APP_ID = '112157085578818'
         | 
| 5 | 
            +
              FACEBOOK_APP_SECRET = '41f0e7ee8b6501dca1610de9926477c4'
         | 
| 7 6 | 
             
              FACEBOOK_OAUTH_REDIRECT_URI = 'http://www.example.com/oauth_redirect'
         | 
| 8 7 | 
             
              FACEBOOK_OAUTH_CODE = '2.0eXhebBSDTpoe08qIaocNQ__.3600.1273748400-503153225|caqygNb5Gobz6lpj3HXjlthDxds.'
         | 
| 9 8 | 
             
              FACEBOOK_OAUTH_ACCESS_TOKEN = "115187085478818|rDIv_5zgjCSM_fWBv5Z-lQr5gFk."
         | 
| @@ -56,21 +55,21 @@ class FGraphTest < Test::Unit::TestCase | |
| 56 55 | 
             
              context "FGraph.oauth_authorize_url" do
         | 
| 57 56 | 
             
                should "should call format_url with appropriate hash" do
         | 
| 58 57 | 
             
                  FGraph.expects(:format_url).with('/oauth/authorize', {
         | 
| 59 | 
            -
                    :client_id =>  | 
| 58 | 
            +
                    :client_id => FACEBOOK_APP_ID,
         | 
| 60 59 | 
             
                    :redirect_uri => FACEBOOK_OAUTH_REDIRECT_URI
         | 
| 61 60 | 
             
                  })
         | 
| 62 61 |  | 
| 63 | 
            -
                  FGraph.oauth_authorize_url( | 
| 62 | 
            +
                  FGraph.oauth_authorize_url(FACEBOOK_APP_ID, FACEBOOK_OAUTH_REDIRECT_URI)
         | 
| 64 63 | 
             
                end
         | 
| 65 64 |  | 
| 66 65 | 
             
                should "should call format_url with options" do
         | 
| 67 66 | 
             
                  FGraph.expects(:format_url).with('/oauth/authorize', {
         | 
| 68 | 
            -
                    :client_id =>  | 
| 67 | 
            +
                    :client_id => FACEBOOK_APP_ID,
         | 
| 69 68 | 
             
                    :redirect_uri => FACEBOOK_OAUTH_REDIRECT_URI,
         | 
| 70 69 | 
             
                    :scope => 'publish_stream'
         | 
| 71 70 | 
             
                  })
         | 
| 72 71 |  | 
| 73 | 
            -
                  FGraph.oauth_authorize_url( | 
| 72 | 
            +
                  FGraph.oauth_authorize_url(FACEBOOK_APP_ID, FACEBOOK_OAUTH_REDIRECT_URI,
         | 
| 74 73 | 
             
                    :scope => 'publish_stream')
         | 
| 75 74 | 
             
                end
         | 
| 76 75 | 
             
              end
         | 
| @@ -78,13 +77,13 @@ class FGraphTest < Test::Unit::TestCase | |
| 78 77 | 
             
              context "FGraph.oauth_access_token" do
         | 
| 79 78 | 
             
                should "return user access token and expires" do
         | 
| 80 79 | 
             
                  stub_get(FGraph.format_url('/oauth/access_token', {
         | 
| 81 | 
            -
                    :client_id =>  | 
| 80 | 
            +
                    :client_id => FACEBOOK_APP_ID,
         | 
| 82 81 | 
             
                    :client_secret => FACEBOOK_APP_SECRET,
         | 
| 83 82 | 
             
                    :redirect_uri => FACEBOOK_OAUTH_REDIRECT_URI,
         | 
| 84 83 | 
             
                    :code => FACEBOOK_OAUTH_CODE
         | 
| 85 84 | 
             
                  }), 'access_token.txt')
         | 
| 86 85 |  | 
| 87 | 
            -
                  token = FGraph.oauth_access_token( | 
| 86 | 
            +
                  token = FGraph.oauth_access_token(FACEBOOK_APP_ID, FACEBOOK_APP_SECRET, 
         | 
| 88 87 | 
             
                    :redirect_uri => FACEBOOK_OAUTH_REDIRECT_URI, 
         | 
| 89 88 | 
             
                    :code => FACEBOOK_OAUTH_CODE)
         | 
| 90 89 |  | 
| @@ -141,7 +140,7 @@ class FGraphTest < Test::Unit::TestCase | |
| 141 140 | 
             
              end
         | 
| 142 141 |  | 
| 143 142 | 
             
              context "Facebook.insights" do
         | 
| 144 | 
            -
                should "call perform_get('/[ | 
| 143 | 
            +
                should "call perform_get('/[client_id]/insights')" do
         | 
| 145 144 | 
             
                  FGraph.expects(:perform_get).with("/#{FACEBOOK_APP_ID}/insights", {
         | 
| 146 145 | 
             
                    :access_token => FACEBOOK_OAUTH_APP_ACCESS_TOKEN
         | 
| 147 146 | 
             
                  })
         | 
    
        metadata
    CHANGED
    
    | @@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version | |
| 5 5 | 
             
              segments: 
         | 
| 6 6 | 
             
              - 0
         | 
| 7 7 | 
             
              - 1
         | 
| 8 | 
            -
              -  | 
| 9 | 
            -
              version: 0.1. | 
| 8 | 
            +
              - 4
         | 
| 9 | 
            +
              version: 0.1.4
         | 
| 10 10 | 
             
            platform: ruby
         | 
| 11 11 | 
             
            authors: 
         | 
| 12 12 | 
             
            - Herryanto Siatono
         | 
| @@ -14,7 +14,7 @@ autorequire: | |
| 14 14 | 
             
            bindir: bin
         | 
| 15 15 | 
             
            cert_chain: []
         | 
| 16 16 |  | 
| 17 | 
            -
            date: 2010-05- | 
| 17 | 
            +
            date: 2010-05-22 00:00:00 +08:00
         | 
| 18 18 | 
             
            default_executable: 
         | 
| 19 19 | 
             
            dependencies: 
         | 
| 20 20 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| @@ -105,6 +105,7 @@ files: | |
| 105 105 | 
             
            - examples/publish_feed.rb
         | 
| 106 106 | 
             
            - lib/fgraph.rb
         | 
| 107 107 | 
             
            - lib/fgraph/client.rb
         | 
| 108 | 
            +
            - lib/tasks/fgraph.rake
         | 
| 108 109 | 
             
            - test/fgraph/client_test.rb
         | 
| 109 110 | 
             
            - test/fgraph_test.rb
         | 
| 110 111 | 
             
            - test/fixtures/access_token.txt
         |