9
respostas

[Dúvida] Erro 401

Em Criando Repositorio com Post, apesar das Auth estarem corretas, retorna codigo 401 no status_code. Pq isso ocorre?

Fiz um teste usando o codigo

def test_token(token):
  headers = {
      'Authorization': f'Token {token}'
  }
  url = 'https://api.github.com/user'
  response = requests.get(url, headers=headers)

  if response.status_code == 200:
      print("Token válido! Autenticação bem-sucedida.")
  else:
      print("Token inválido. Autenticação falhou.")

test_token('Meu Token')

Retornou que meu Token esta valido e autenticacao foi bem sucedida. Mas mesmo assim o erro é 401 no status_code

9 respostas

Oii Rafael, tudo bem contigo?

Peço desculpas pela demora em obter um retorno.

Muito provavelmente o erro deve ser por conta de algum outro detalhe no seu código. Confira se está utilizando o endpoint correto para a criação de repositório:

https://api.github.com/user/repos

Além disso, confira se está passando todas as informações necessárias para a criação de um repositório:

import requests

data = {
    'name': 'linguagens-utilizadas',
    'description': 'Repositorio com as linguagens de prog da Amazon',
    'private': False
}

response = requests.post(url, json=data, headers=headers)
response.status_code

Caso esteja tudo correto e o erro ainda esteja sendo gerado, compartilhe essa parte do seu código comigo para eu tentar te ajudar :)

Bons estudos!

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Eis o Print do código, Milena.

Obs: o "def test_token" eu inseri por conta própria para verificar se o Token estava válido.

Oii Rafael!

Analisando seu código aqui não consegui encontrar nada de errado. E realmente o status code 401 é relacionado a parte de autenticação.

Nesse caso, vou te pedir pra conferir se você definiu o dicionário headers corretamente com o seu token mais recente e também executar novamente a célula onde ele é definido:

access_token = 'token'
headers = {'Authorization': 'Bearer ' + access_token,
           'X-GitHub-Api-Version': '2022-11-28'}

Caso já tenha feito isso, eu sugiro que crie um novo token no GitHub e utilize ele no seu dicionário headers. Após adicionar esse novo token é importante que execute novamente a célula onde esse dicionário está sendo definido para garantir que o valor do campo "Authorization" seja devidamente atualizado.

Com o token e o headers atualizado, tente executar novamente a requisição post para criação do repositório.

Qualquer dúvida estou por aqui :)

Bons estudos!

Boa tarde Rafael, https://github.com/settings/tokens verifica aqui clicando no nome da sua API se você permitiu acesso para criar o repositório

Estou com o mesmo erro, já realizei os passos indicados aqui mas continuo tendo o mesmo erro. Mesmo com o token novo com todas as permissões.

Milena, qual parte do codigo se hipoteticamento houvesse um erro daria este tipo de 401? Somente aquela parte que voce me solicitou ou para cima também? Apesar de quando rodo as linhas no Shift + Enter, eles retornam o Check Verde e tbm quando há, retornam os valores identicos aos seus (conteudo dos dicionarios, codigo 200, etc...)

Pergunto isso pq baixei o conteudo completo da Aula 4 e rodei no Google Colab, inseri meu Token no lugar e rodou corretamente. (este fato já responde também a sugestão do Diego Ducatti).

Rafael, acho que o seu url está errado:

Atual: url = f'{api_base_url}/user/repos

Corrigido: url = f'{api_base_url}/users/repos

Só para dar um retorno, consegui fazer funcionar aqui meu código, acredito que o que estava errado no meu código era digitação, em: headers = {'Authorization' : 'Bearer ' + access_token, 'X-GitHub-Api-Version': '2022-11-28'}

A única alteração que eu fiz foi no 'Bearer ' que estava sem o espaço, ('Bearer'), não sei pq não estava aceitando isso, e tinha funcionado sem espaço até então. Agora rodou bonitinho e funcionou..