Sfortunato Google Contatti API non funziona con la nuova libreria client JavaScript. Funziona solo con GData Client Library. Ho provato a lavorare su GData Client Library, ma è difficile quando si ricevono avvertimenti nella documentazione in ogni momento che la libreria è stata deprecata.
Pertanto, ho usato un idruro,
- utilizzando la nuova libreria client, per ottenere l'autenticazione.
- utilizzare un URL per ottenere i contatti
Purtroppo, a causa delle restrizioni del dominio croce è necessario utilizzare JSONP, altrimenti il browser non riesce.
<script src="https://apis.google.com/js/client.js"></script>
.....
function contactsInit() {
var clientId = 'YOURCLIENTID.apps.googleusercontent.com';
var scopes = 'https://www.google.com/m8/feeds';
gapi.auth.authorize({
client_id: clientId, scope: scopes, immediate: false},
handleAuthResult);
function handleAuthResult(authResult) {
if (authResult && !authResult.error) {
var url =
"https://www.google.com/m8/feeds/contacts/default/" +
"full?alt=json-in-script&access_token=" +
authResult.access_token +
"&max-results=7000&v=3.0";
var myJSONP = new Request.JSONP({
url: url,
callbackKey: 'jsoncallback',
data: {
},
onRequest: function(url){
// a script tag is created with a src equal to url
},
onComplete: function(data){
// the request was completed.
}
}).send();
}
}
}
function Skeleton() {}
if (!gdata) {
var gdata = new Skeleton();
gdata.io = new Skeleton();
gdata.io.handleScriptLoaded = function(data) {
processContacts(data);
}
}
Note: io uso Mootools per JSONP ma si potrebbe anche utilizzare jQuery o vaniglia js con How to make a JSONP request from Javascript without JQuery?
È necessario fornire il proprio YOURCLIENTID, e definire la funzione processContacts.
gdata.io.handleScriptLoaded (data) è necessario poiché ciò che l'url si aspetta durante la richiamata.
Io uso un limite di 7000, ma non penso sia necessario.
Se non si desidera utilizzare JSONP, è possibile inoltrare access_token al server Web ed elaborare l'URL lì, ad es. con cURL o con Node.js basta sostituire json-in-script con json.
In json-in-script è importante su un browser poiché altrimenti il browser gracchia.
Grazie alle altre risposte in questa pagina, questo mi ha indirizzato nella giusta direzione.
Spero che Google possa rendere l'API Contatti in grado con la nuova libreria client Javascript. Spero che altri possano utilizzare questa soluzione nel frattempo.
qualsiasi aggiornamento a questo? Sembra che il problema esista ancora, non posso usare (o forse non lo so), google contacts api v3. qualcuno ha ancora trovato una soluzione? –