Script Instagram API da Shell

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=xxxxxxxxxxxxxxxxxxxxxxxxxxx”)
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)

This Site will help you to make you know how to make save other’s Instagram stories.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs