Ciao ragazzi, sto provando a utilizzare le API di Instagram per fare uno script che funzioni solo da shell. Sto incontrando due problemi: 1) Non riesco/non so come fare una chiamata ad un url leggere un URL di risposta da dove mi ricavo il "code" e per poi ottenere il token 2) Non riesco a capire dove sbaglio per ottenere la lista degli userd id di chi seguo (follow) su instagram. Di seguito vi copio il codice: # instagram_from_shell.rb ------------------------------------------ require 'oauth2' require "instagram" puts "Write your CONSUMER KEY:" @consumer_key = gets.strip puts "Write your CONSUMER SECRET:" @consumer_secret = #gets.strip CALLBACK_URL = "http://localhost:9393/oauth/callback" client = OAuth2::Client.new(@consumer_key, @consumer_secret, { :site => "http://instagram.com/", :request_token_path => "/oauth/request_token", :access_token_path => "/oauth/access_token", :authorize_path => "/oauth/authenticate?response_type=code",}) # ?????????????????????????????????????????? # Come e dove inserisco le credenziali (username e psw) per accedere al servizio e autorizzare l'app? # ??????????????????????????????????????????? # autorizzare l'app uri = client.auth_code.authorize_url(:redirect_uri => CALLBACK_URL) # ?????????????????????????????????????????? # Come faccio a leggere l'url di risposta con il "code"? # ??????????????????????????????????????????? # estrapolo il "code" dall' url uri = URI("http://localhost:9393/oauth/callback?code=xxxxxxxx...) code = uri.query.split("=").last # ?????????????????????????????????????????? # con il "code" devo chiedere il token e qui NON ho trovato il modo per avercelo # @access_token = client.auth_code.get_token(code, :redirect_uri => CALLBACK_URL )) #non corretto # ?????????????????????????????????????????? Instagram.configure do |config| config.client_id = @consumer_key config.client_secret = @consumer_secret config.access_token = @access_token end # Funzione/metodo def get_followers_id following_ids = [] next_cursor = 0 while next_cursor page = Instagram.user_follows(:cursor => next_cursor).each do |user| following_ids << user.id end puts "valore next_cursor = #{page.pagination.next_cursor} , n° id presenti = #{page.count} e #{following_ids.count} id salvati" next_cursor = page.pagination.next_cursor end puts("saved #{following_ids.count} users id") end # -------------------------------------------------------------- Se faccio partire la funzione/metodo la console mi da questo risultato valore next_cursor = 1356908804645 , n id presenti = 50 e 50 id salvati valore next_cursor = 1353145392700 , n id presenti = 50 e 100 id salvati valore next_cursor = 1347420191755 , n id presenti = 49 e 149 id salvati valore next_cursor = 1330765947348 , n id presenti = 29 e 178 id salvati valore next_cursor = 1311898349798 , n id presenti = 4 e 182 id salvati valore next_cursor = 1299688462476 , n id presenti = 25 e 207 id salvati valore next_cursor = , n id presenti = 17 e 224 id salvati Non riesco a capire perchè: 1) Io su Instagram seguo 321 utenti, invece qui me ne da solo 224 tot. 2) perchè a volte le pagine sono composte da 50 risultati mentre alcune ne hanno di meno (addirittura 4) Avete mai usato le API di Instagram? Anche a voi avete notato questa cosa? Grazie in anticipo Alberto (@albybisy)
on 2013-03-01 17:20
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.