4

Je crée un client oauth2 dans une fonction comme ça et je le retourne. En fait, je passe l'identifiant de client, le secret, l'URL de redirection et les informations d'identification. Ceux-ci sont tous corrects de ce que j'ai vérifié.nodejs googleapis, authClient.request n'est pas une fonction

var OAuth2 = google.auth.OAuth2; 
var oauth2Client = new OAuth2(CLIENT_ID, CLIENT_SECRET, REDIRECT_URL); 
... 
credentials = { 
     access_token: accessToken, 
     refresh_token: refreshToken 
}; 
oauth2Client.setCredentials(credentials); 

-je donc cela dans la fonction où l'objet est retourné oauth2client:

var plus = google.plus('v1'); 
console.log(JSON.stringify(oauth_client)); 
plus.people.get({ userId: 'me' , auth: oauth_client}, function(err, response) { 
    if(err) { 
     console.log(err); 
    } else { 
     console.log(JSON.stringify(response)); 
     return response; 
    } 
}); 

Cependant, je puis obtenir un message d'erreur indiquant que authClient.request est pas une fonction.

TypeError: authClient.request est pas une fonction à createAPIRequest (/node_modules/googleapis/lib/apirequest.js:180:22)

Je ne sais pas pourquoi je reçois cette erreur. J'ai aussi fait console.log (JSON.stringify (oauth_client)) pour vérifier une fonction de requête et je n'en ai vu aucune. Quelqu'un a mentionné que cela ne peut pas afficher la chaîne de prototypes complète et que la fonction de demande pourrait effectivement être là.

+0

serait agréable d'accepter la réponse, sandeep a résolu mon problème. – TheeBen

Répondre

2

Le problème est avec "oauth_client" .J'ai utilisé "google-auth-library" pour s'authentifier.

var googleAuth = require('google-auth-library'); 
var auth = new googleAuth(); 
var oauth2Client = new auth.OAuth2(clientId, clientSecret, redirectUrl); 
oauth2Client.credentials = credentials; 

puis d'utiliser ce client oauth2 comme client_auth.

0

Vous ne savez pas si vous avez déjà résolu ce problème, mais essayez de vérifier les étendues pour lesquelles vous disposez d'autorisations.

Je recevais cette erreur et se trouve que j'avais mon champ d'application défini à « https://www.googleapis.com/auth/youtube.readonly » et puis quand j'ai changé la portée de « https://www.googleapis.com/auth/youtube.upload » & 'https://www.googleapis.com/auth/youtube J'ai pu télécharger des vidéos au lieu d'obtenir l'erreur authClient.request is not a function