Google-api-nodejs-client: problème de création d'un calendrier

Créé le 8 oct. 2015  ·  4Commentaires  ·  Source: googleapis/google-api-nodejs-client

Mon code (assez simple):

var google = require('googleapis');
var key    = require('../../ssl/GoogleAPI/calendar-secret.json');
var auth   = new google.auth.JWT(key.client_email, null, key.private_key, ['https://www.googleapis.com/auth/calendar'], null);
var api    = google.calendar("v3");


auth.authorize(function (err, tokens) {
    if (err) {
        console.log(err);
        return;
    }
    api.calendars.insert({
        auth: auth,
        summary: "test calendar"
    }, function (err, resp) {
        if (err) {
            console.log(err);
        }
        else {
            console.log(resp);
        }
    })
});

Je reçois une réponse disant :

{ [Error: Missing title.]
  code: 400,
  errors: 
   [ { domain: 'global',
       reason: 'required',
       message: 'Missing title.' } ] }

J'ai essayé de tracer le code et il semble qu'il n'y ait rien dans le corps du POST.
Je ne sais pas si la syntaxe est correcte pour l'objet params mais j'ai suivi les exemples autant que j'ai pu.

Le document de l'API spécifie que le titre est « résumé » comme dans

POST https://www.googleapis.com/calendar/v3/calendars
{
 "summary": "test-cal2"
}

Alors, qu'est-ce que je fais de mal ici ?

triage me

Commentaire le plus utile

En fouillant dans le code, j'ai finalement réussi à faire fonctionner ceci en utilisant :

api.calendars.insert({
        auth: auth,
        resource: {summary: "test calendar 2"}
    }

Où est la doc sur ce truc ?
Ce n'était pas clair du tout...

Tous les 4 commentaires

En fouillant dans le code, j'ai finalement réussi à faire fonctionner ceci en utilisant :

api.calendars.insert({
        auth: auth,
        resource: {summary: "test calendar 2"}
    }

Où est la doc sur ce truc ?
Ce n'était pas clair du tout...

C'est documenté dans le README https://github.com/google/google-api-nodejs-client#specifying -request-body Comment puis-je être plus clair ?

Je sais que je réponds à un post vieux de 2 ans mais c'est un problème qui persiste.

Il n'y a aucun exemple montrant explicitement comment insérer quelque chose dans l'une de vos API, ou du moins ce n'est pas très visible. C'est la chose la plus importante que vous puissiez ajouter pour améliorer les choses.

Il y a BEAUCOUP plus... mais je n'entrerai pas dans les détails.

cette fonction devrait faire le travail. https://github.com/google/google-api-nodejs-client/blob/master/src/apis/calendar/v3.ts#L662

essayer le test API officiel
https://developers.google.com/google-apps/calendar/v3/reference/calendars/insert#try -it
travaille

Je n'arrive pas à le faire fonctionner aussi.
C'est mon code :

var auth = new googleAuth();
var oauth2Client = new auth.OAuth2(clientId, clientSecret, redirectUrl);
oauth2Client.credentials = JSON.parse(user.calendarToken)
var calendar = google.calendar('v3');
calendar.calendars.insert({
  resource : {
    summary : req.body.newName
  },
  auth: auth
},function(err,newCal){
  console.log(err) /* =>  output this { domain: 'global',
       reason: 'required',
       message: 'Missing title.' }*/
})
Cette page vous a été utile?
0 / 5 - 0 notes