diff --git a/Gemfile.lock b/Gemfile.lock index 0e12d65..3ad2769 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -28,7 +28,7 @@ GEM concurrent-ruby (1.1.9) daemons (1.4.1) eventmachine (1.2.7) - faraday (0.17.4) + faraday (0.17.5) multipart-post (>= 1.2, < 3) faraday_middleware (0.14.0) faraday (>= 0.7.4, < 1.0) @@ -40,7 +40,7 @@ GEM faraday_middleware (~> 0.14.0) minitest (5.15.0) multi_json (1.15.0) - multipart-post (2.1.1) + multipart-post (2.2.0) mustermann (1.1.1) ruby2_keywords (~> 0.0.1) rack (2.2.3) diff --git a/db/seeds.rb b/db/seeds.rb index 7362806..c01d721 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -1,7 +1,16 @@ require 'instagram_basic_display_api' require 'sinatra/activerecord' +require 'net/http' -client = InstagramBasicDisplayAPI.client(access_token: ENV['DUNDO_FARMS_IG_TOKEN']) +current_token = File.open('/home/steve/.ig_token', &:readline) +refresh_uri = URI('https://graph.instagram.com/refresh_access_token') +refresh_params = { grant_type: 'ig_refresh_token', access_token: current_token} +refresh_uri.query = URI.encode_www_form(refresh_params) +response = Net::HTTP.get_response(refresh_uri) +token = JSON.parse(response.body)['access_token'] +File.write('/home/steve/.ig_token', token) + +client = InstagramBasicDisplayAPI.client(access_token: token) media = client.user_recent_media[:data].reduce([]) do |media, media_item| if media_item[:media_type] == 'CAROUSEL_ALBUM' @@ -13,8 +22,9 @@ media = client.user_recent_media[:data].reduce([]) do |media, media_item| end media.each do |media_item| - IGMedia.create( - id: media_item[:id], + model = IGMedia.find_or_create_by(id: media_item[:id]) + + model.update( media_url: media_item[:media_url], media_type: media_item[:media_type], thumbnail_url: media_item[:thumbnail_url],