@@ -8,7 +8,7 @@ module Funky
88 module Connection
99 class API < Base
1010 def self . fetch_all ( path_query )
11- uri = URI "https://#{ host } /v2.9/#{ path_query } &limit=100&access_token=#{ app_id } %7C #{ app_secret } "
11+ uri = URI "https://#{ host } /v2.9/#{ path_query } &limit=100&access_token=#{ app_access_token } "
1212 fetch_data_with_paging_token ( uri )
1313 end
1414
@@ -24,7 +24,7 @@ def self.fetch_data_with_paging_token(uri)
2424 end
2525
2626 def self . fetch ( path_query , is_array : false )
27- uri = URI "https://#{ host } /v2.8/#{ path_query } &limit=100&access_token=#{ app_id } %7C #{ app_secret } "
27+ uri = URI "https://#{ host } /v2.8/#{ path_query } &limit=100&access_token=#{ app_access_token } "
2828 is_array ? fetch_multiple_pages ( uri ) . uniq : json_for ( uri )
2929 rescue URI ::InvalidURIError
3030 raise Funky ::ContentNotFound , "Invalid URL"
@@ -66,14 +66,14 @@ def self.fetch_multiple_pages(uri)
6666 def self . request ( id :, fields :)
6767 uri = URI ::HTTPS . build host : host ,
6868 path : "/v2.8/#{ id } " ,
69- query : "access_token=#{ app_id } %7C #{ app_secret } &fields=#{ fields } "
69+ query : "access_token=#{ app_access_token } &fields=#{ fields } "
7070 response_for ( get_http_request ( uri ) , uri )
7171 end
7272
7373 def self . batch_request ( ids :, fields :)
7474 uri = URI ::HTTPS . build host : host ,
7575 path : "/" ,
76- query : "include_headers=false&access_token=#{ app_id } %7C #{ app_secret } "
76+ query : "include_headers=false&access_token=#{ app_access_token } "
7777 batch = create_batch_for ids , fields
7878 http_request = post_http_request uri
7979 http_request . set_form_data batch : batch . to_json
@@ -94,6 +94,14 @@ def self.app_secret
9494 Funky . configuration . app_secret
9595 end
9696
97+ def self . app_access_token
98+ @app_access_token ||= begin
99+ uri = URI ::HTTPS . build host : host , path : "/v2.8/oauth/access_token" ,
100+ query : URI . encode_www_form ( { client_id : app_id , client_secret : app_secret , grant_type : 'client_credentials' } )
101+ Funky ::Connection ::API . json_for ( uri ) [ :access_token ]
102+ end
103+ end
104+
97105 def self . post_http_request ( uri )
98106 Net ::HTTP ::Post . new uri
99107 end
0 commit comments