2017-08-09 2 views
0

J'ai généré un jeton de GitHub et j'aimerais utiliser GitHub API v4 mais je dois d'abord être authentifié. J'ai essayé ce code:Authentification GitHub API v4

const networkInterface = createBatchingNetworkInterface({ 
    uri: 'https://api.github.com/graphql', 
    batchInterval: 10 
}); 

Et j'ai une erreur

This endpoint requires you to be authenticated. 

Je suis en train de mon jeton authentifier, mais il ne fonctionne pas. J'ai essayé dans l'exemple de faire comme ça:

networkInterface.use([{ 
    applyMiddleware(req, next) { 
    if (!req.options.headers) { 
     req.options.headers = {}; // Create the header object if needed. 
    } 
    req.options.headers['Authorization'] = 'mytokenishere'; 
    next(); 
    } 
}]); 

et dans ce cas, je reçois une information:

Bad credentials 

J'ai aussi essayé de le faire d'une autre façon, mais il ne fonctionne pas.

+0

Votre en-tête 'Authorization' est-il juste' mytokenishere' ou est-ce 'bearer mytokenishere'? –

+0

Hmm, c'est seulement mytokenishere. –

+2

Essayez d'inclure 'bearer' comme type de jeton avec votre jeton. La documentation de l'API GitHub v4 y fait référence ici: https://developer.github.com/v4/guides/forming-calls/#communicating-with-graphql, et je suppose que 'Bad credentials' indique que ce n'est pas le lire correctement puisque vous n'incluez pas un type de jeton. –

Répondre

0

Vous devez inclure le type de jeton comme ceci.

setNetworkInterface(): void{ 
     networkInterface.use([{ 
      applyMiddleware(req, next) { 
      if (!req.options.headers) { 
       req.options.headers = {}; 
      } 
      req.options.headers.authorization = 'Bearer XXXXXXXXXXX'; 
      req.options.headers.host = 'https://api.github.com/graphql'; 
      next(); 
      } 
     }]); 
     }