>source

거의 반복되는 문제인 것 같습니다. bash와 curl에서 API Github를 이런 식으로 호출합니다.

# curl -u myuser https://api.github.com/repos/myuser/somerepo/pulls?state=all -H "Authorization: token randomtokenhere" -d '{"title":"Pull Request develop to master","base":"master", "head":"develop"}'

그리고 매력처럼 작동합니다. 그러나 json 및 요청이있는 Python 3 (3.5.2)에서 무엇이든 오류가 발생했습니다.

예 :

user    = "myuser"
password = "sompassword"
url     = "https://api.github.com/repos/myuser/somerepo/pulls?state=all"
token   = "randomtokenhere"
title   = "Pull Request develop to master"
base    = "master"
head    = "develop"
headers = {'Authorization': 'token ' + token}
content = {"title":title,"base":base, "head":head}
req     = requests.post(url,json=json.dumps(content),auth=(user,password),headers=headers)
print("response posts is {} and status code is {}".format(req.text,req.status_code))

요청의 응답은

response posts is {"message":"Must specify two-factor authentication OTP code.","documentation_url":"https://developer.github.com/v3/auth#working-with-two-factor-authentication"} and status code is 401

그래서 호출에 어떤 식 으로든 토큰이 누락 된 것 같습니다. 그러나 나는 이유를 알 수 없습니다. 어떤 식 으로든 디버깅 할 수 있습니까? 아니면 매우 분명한 것을 놓쳤습니까?

감사합니다


  • 답변 # 1

    글쎄요, 귀찮게해서 전화가 잘못되었습니다. 이것은 실제로 효과가있었습니다 :

    //req       = requests.post(url,json=json.dumps(content),auth=(user,password),headers=headers)
    req     = requests.post(url,json=content,auth=(user,token))
    
    

    json.dumps 함수를 제거하고 headers 매개 변수를 제거했으며 대신 암호를 사용하여 auth로 토큰을 설정했습니다.

    안녕하세요

  • 이전 javascript - jquery를 사용하여 동적 데이터를 테이블 본문에 추가
  • 다음 c - uintmax_t 또는 size_t를 사용자 정의 printf 변환 지정자로 전달하십시오