Class: GSGraph::Application

Constant Summary collapse

@@attributes =
[
  :name,
  :namespace,
  :description,
  :canvas_name,
  :category,
  :subcategory,
  :link,
  :company,
  :icon_url,
  :logo_url,
  :daily_active_users,
  :weekly_active_users,
  :monthly_active_users,
  :migrations,
  :namespace,
  :restrictions,
  :app_domains,
  :auth_dialog_data_help_url,
  :auth_dialog_description,
  :auth_dialog_headline,
  :auth_dialog_perms_explanation,
  :auth_referral_user_perms,
  :auth_referral_friend_perms,
  :auth_referral_default_activity_privacy,
  :auth_referral_enabled,
  :auth_referral_extended_perms,
  :auth_referral_response_type,
  :canvas_fluid_height,
  :canvas_fluid_width,
  :canvas_url,
  :contact_email,
  :created_time,
  :creator_uid,
  :deauth_callback_url,
  :iphone_app_store_id,
  :hosting_url,
  :mobile_web_url,
  :page_tab_default_name,
  :page_tab_url,
  :privacy_policy_url,
  :secure_canvas_url,
  :secure_page_tab_url,
  :server_ip_whitelist,
  :social_discovery,
  :terms_of_service_url,
  :user_support_email,
  :user_support_url,
  :website_url,
  :type,
  :secret
]

Instance Attribute Summary

Attributes inherited from Node

#access_token, #endpoint, #identifier, #raw_attributes

Instance Method Summary collapse

Methods included from OpenGraph::ApplicationContext

#og_action

Methods included from Connections::Videos

#video!, #videos

Methods included from Connections::TestUsers

#test_user!, #test_users

Methods included from Connections::Subscriptions

#subscribe!, #subscriptions, #unsubscribe!

Methods included from Connections::Roles

#admin!, #developer!, #insights_user!, #role!, #roles, #tester!, #unrole!

Methods included from Connections::Picture

#picture

Methods included from Connections::Payments

#payments

Methods included from Connections::Insights

#insights

Methods included from Connections::Banned

#ban!, #banned, #banned?, #unban!

Methods included from Connections::AppNotifications

#notify!

Methods included from Connections::Achievements

#achievement!, #achievements, #unregister_achievement!

Methods included from Connections::Accounts

#accounts

Methods inherited from Node

#connection, #destroy, fetch, #fetch, #update

Methods included from Comparison

#==

Constructor Details

#initialize(client_id, attributes = {}) ⇒ Application

Returns a new instance of Application.



70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# File 'lib/gs_graph/application.rb', line 70

def initialize(client_id, attributes = {})
  super
  @@attributes.each do |key|
    # NOTE:
    # For some reason, Graph API returns daily_active_users, weekly_active_users, monthly_active_users as JSON string.
    value = case key
    when :daily_active_users, :weekly_active_users, :monthly_active_users
      attributes[key].to_i
    when :auth_referral_enabled, :canvas_fluid_height, :canvas_fluid_width, :social_discovery
      case attributes[key]
      when 1
        true
      when 0
        false
      else
        attributes[key]
      end
    else
      attributes[key]
    end
    self.send("#{key}=", value)
  end
end

Instance Method Details

#access_token_with_auto_fetchObject



101
102
103
104
# File 'lib/gs_graph/application.rb', line 101

def access_token_with_auto_fetch
  access_token_without_auto_fetch ||
  self.secret && get_access_token
end

#debug_token(input_token) ⇒ Object



107
108
109
110
111
112
113
114
115
116
117
# File 'lib/gs_graph/application.rb', line 107

def debug_token(input_token)
  _input_token_ = case input_token
  when Rack::OAuth2::AccessToken::Legacy
    input_token
  else
    Rack::OAuth2::AccessToken::Legacy.new(
      :access_token => input_token
    )
  end
  _input_token_.introspect access_token
end

#get_access_token(secret = nil) ⇒ Object Also known as: app_access_token



94
95
96
97
98
# File 'lib/gs_graph/application.rb', line 94

def get_access_token(secret = nil)
  self.secret ||= secret
  auth = Auth.new(self.identifier, self.secret)
  self.access_token = auth.client.access_token! :client_auth_body
end