filipedeschamps / video-maker

Projeto open source para fazer vídeos automatizados

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cannot read property '0' of undefined

Caio-P-B opened this issue · comments

Estou com esse erro ao tentar fazer o primeiro teste do penúltimo vídeo da série [YouTube API: tutorial para upload de vídeos (OAuth2)]

image

(node:13404) UnhandledPromiseRejectionWarning: TypeError: Cannot read property '0' of undefined
at createOAuthClient (C:\Users\Desktop\Desktop\Testes-HTML\four-robots-project\the-four-robots\robots\youtube.js:44:46)
at authenticateWithOAuth (C:\Users\Desktop\Desktop\Testes-HTML\four-robots-project\the-four-robots\robots\youtube.js:15:35)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async Object.robot [as youtube] (C:\Users\Desktop\Desktop\Testes-HTML\four-robots-project\the-four-robots\robots\youtube.js:9:5
)
at async start (C:\Users\Desktop\Desktop\Testes-HTML\four-robots-project\the-four-robots\index.js:14:5)
(Use node --trace-warnings ... to show where the warning was created)
(node:13404) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an asyn
c function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unha
ndled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejection
s_mode). (rejection id: 2)
(node:13404) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not
handled will terminate the Node.js process with a non-zero exit code.

Estou com esse erro ao tentar fazer o primeiro teste do penúltimo vídeo da série [YouTube API: tutorial para upload de vídeos (OAuth2)]

image

(node:13404) UnhandledPromiseRejectionWarning: TypeError: Cannot read property '0' of undefined
at createOAuthClient (C:\Users\Desktop\Desktop\Testes-HTML\four-robots-project\the-four-robots\robots\youtube.js:44:46)
at authenticateWithOAuth (C:\Users\Desktop\Desktop\Testes-HTML\four-robots-project\the-four-robots\robots\youtube.js:15:35)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async Object.robot [as youtube] (C:\Users\Desktop\Desktop\Testes-HTML\four-robots-project\the-four-robots\robots\youtube.js:9:5
)
at async start (C:\Users\Desktop\Desktop\Testes-HTML\four-robots-project\the-four-robots\index.js:14:5)
(Use node --trace-warnings ... to show where the warning was created)
(node:13404) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an asyn
c function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unha
ndled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejection
s_mode). (rejection id: 2)
(node:13404) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not
handled will terminate the Node.js process with a non-zero exit code.

Então estou com o mesmo problema, você conseguiu resolver?

Assim que conseguir volto com a solução.

Achei uma solução pra mim que funcionou e gostaria de compartilhar:

Em robots/youtube.js
Na linha : 41

async function createOAuthClient() {
const credentials = require('../credentials/google-youtube.json')

  const OAuthClient = new OAuth2(
    credentials.web.client_id,
    credentials.web.client_secret,
    //credentials.web.redirect_uris[0]
    credentials.web.redirect_uris["http://localhost:5000/oauth2callback"]
  )

  return OAuthClient
}

function requestUserConsent(OAuthClient) {
  const consentUrl = OAuthClient.generateAuthUrl({
    access_type: 'offline',
    scope: ['https://www.googleapis.com/auth/youtube']
  })

 //Alterei esse log no console para mostrar o link completo com o callback
  console.log(`> [youtube-robot] Por favor, de seu consentimento: ${consentUrl}`+`http://localhost:5000/oauth2callback`)
}

Pra mim funcionou. Diga aí se funcionou pra você.