Module: Facy::GetToken
- Included in:
- Facy
- Defined in:
- lib/facy/get_token.rb
Instance Method Summary collapse
- #browse(url) ⇒ Object
- #exchange_long_term_token ⇒ Object
- #grant_access ⇒ Object
- #load_session_file ⇒ Object
- #login_flow ⇒ Object
- #save_config_file ⇒ Object
- #save_session_file ⇒ Object
- #session_file ⇒ Object
- #setup_app_id ⇒ Object
- #setup_app_secret ⇒ Object
- #setup_token ⇒ Object
Instance Method Details
#browse(url) ⇒ Object
105 106 107 108 109 |
# File 'lib/facy/get_token.rb', line 105 def browse(url) Launchy.open(url) rescue puts "warning: can't open url" end |
#exchange_long_term_token ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/facy/get_token.rb', line 51 def exchange_long_term_token oauth = Koala::Facebook::OAuth.new(config[:app_id], config[:app_secret]) new_token = oauth.exchange_access_token_info(config[:access_token]) if new_token["access_token"] config[:access_token] = new_token["access_token"] log(:info, "long term access token exchanged success") else log(:error, "long term access token exchanged failed") raise Exception.new("can not accquire new access token") unless new_token["access_token"] end end |
#grant_access ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/facy/get_token.rb', line 63 def grant_access app_id = config[:app_id] redirect_uri = config[:redirect_uri] = config[:permission] get_access_url = "https://www.facebook.com/dialog/oauth?client_id=#{app_id}&scope=#{}&redirect_uri=#{redirect_uri}" puts "★ goto #{get_access_url} to grant access to our app" browse(get_access_url) puts "→ after access granted press enter" STDIN.gets end |
#load_session_file ⇒ Object
36 37 38 39 40 41 42 43 |
# File 'lib/facy/get_token.rb', line 36 def load_session_file session = YAML.load_file(session_file) config[:access_token] = session["access_token"] return (ret = config[:access_token].nil? ? false : true) log(:info, "session file load success #{config[:access_token]}") rescue Errno::ENOENT #file not found return false end |
#login_flow ⇒ Object
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/facy/get_token.rb', line 85 def login_flow unless config[:app_id] setup_app_id end unless config[:app_secret] setup_app_secret end unless config[:granted] grant_access end save_config_file unless load_session_file setup_token exchange_long_term_token save_session_file end log(:info, "login flow success") end |
#save_config_file ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/facy/get_token.rb', line 24 def save_config_file File.open(config_file, 'w') do |f| conf = { "app_id" => config[:app_id], "app_secret" => config[:app_secret], "permission" => config[:permission], "granted" => true } f.write conf.to_yaml end end |
#save_session_file ⇒ Object
45 46 47 48 49 |
# File 'lib/facy/get_token.rb', line 45 def save_session_file hash = {"access_token" => config[:access_token]} File.open(session_file, "w") { |f| f.write hash.to_yaml } log(:info, "session file save success at #{session_file}") end |
#session_file ⇒ Object
5 6 7 |
# File 'lib/facy/get_token.rb', line 5 def session_file File.(config[:session_file_name], config[:session_file_folder]) end |
#setup_app_id ⇒ Object
9 10 11 12 13 14 15 |
# File 'lib/facy/get_token.rb', line 9 def setup_app_id developer_page = "https://developers.facebook.com" puts "★ go to #{developer_page} and enter our app_id: " browse(developer_page) config[:app_id] = STDIN.gets.chomp log(:info, "app_id setup success #{config[:app_id]}") end |
#setup_app_secret ⇒ Object
17 18 19 20 21 22 |
# File 'lib/facy/get_token.rb', line 17 def setup_app_secret developer_page = "https://developers.facebook.com" puts "★ go to #{developer_page} and enter our app_secret: " config[:app_secret] = STDIN.gets.chomp log(:info, "app_secret setup success #{config[:app_id]}") end |
#setup_token ⇒ Object
76 77 78 79 80 81 82 83 |
# File 'lib/facy/get_token.rb', line 76 def setup_token developer_page = "https://developers.facebook.com/tools/accesstoken/" puts "★ goto #{developer_page} and enter User access token: " browse(developer_page) token = STDIN.gets.chomp config[:access_token] = token log(:info, "setup access token success: #{token}") end |