2014-04-03 27 views
5

Sto provando a chiamare gli endpoint API di Instagram dal lato client. Posso accedere solo agli endpoint basati su GET utilizzando JSONP, che è Instagram recommends. Per quelli che richiedono POST o DELETE, sembra che CORS non sia abilitato, quindi questi tipi di chiamate ajax falliscono.Instagram API dal lato client

Esiste un metodo o un approccio che posso utilizzare per accedere a queste API dal lato client?

+0

moduli nascosti possono postare, ma non è possibile ottenere un valore di ritorno lì, quindi potrebbe non essere utile a voi. tuttavia, è possibile ovviare a una mancanza di rendimento eseguendo un altro GET e verificando se qualcosa è stato modificato per rilevare il successo manualmente. – dandavis

+0

Ho appena testato POST con JSONP. Funziona. –

risposta

3

Non è possibile effettuare chiamate POST direttamente dal lato client. È necessario configurare un server proxy che faccia sì che l'API di Instagram richiami POST e DELETE e l'app lato client possa chiamare il server proxy.

0

Io non capisco la tua domanda, ma io uso l'API di Instagram in lato client, e faccio POST e GET, usarlo:

$.ajax({ 
    type: "POST", 
    "method": "POST", 

    //Use the URL in Instagram Document 
    url: 'https://api.instagram.com/v1/media/<ID>/likes?access_token=<TOKEN>', 
    dataType: "jsonp", 

    //To get response 
    success: function(result){ 

    //Exemple, if is okay or not 
    if(result.meta.code == 200){ 
    alert('ok'); 
    }else{ 
    alert('fail'); 
    } 

    } 
}); 

È possibile modificare l'ID token e dei media, e testarlo su http://jsfiddle.net/DvLE2/

Se avete bisogno di inviare i dati (azione, in relazione), si aggiunge:

data: data; 

Esempio, relazione (a seguire o seguire più di qualcuno):

$.ajax({ 
     type: "POST", 
     "method": "POST", 

     url: 'https://api.instagram.com/v1/users/<ID>/relationship?access_token=<TOKEN>', 
     //action (you need that to use relationship 
     data: {action: 'follow'}, 
     dataType: "jsonp", 
     success: function(result){ 
     if(result.meta.code == 200){ 
     alert('ok'); 

     }else{ 
     alert('fail'); 
     } 

     } 
    }); 
+2

Non è possibile effettuare richieste POST con JSONP. La tua opzione 'type' dovrebbe essere" GET " –