次のコードがあります。これは、githubで新しいダウンロードを作成する最初の部分を実行する必要があります。POSTを使用してjson-dataを送信する必要があります。
jsonstring = '{"name": "test", "size": "4"}'
req = urllib2.Request("https://api.github.com/repos/<user>/<repo>/downloads")
req.add_header('Authorization', 'token ' + '<token>')
result = urllib2.urlopen(req, jsonstring)
, jsonstring
からを削除しurlopen()
ても失敗せず、利用可能なダウンロードのリストが表示されます。ただし、json-stringをPOSTしようとすると、404エラーが発生します。
問題はjsonにあるか、送信方法にあるはずですが、問題が何であるかを理解できません。の文字列<...>
は実際のコードに含まれています。投稿から削除しました。
コマンドラインでもほぼ同じように試しcurl
ましたが、認証方法が少し異なりましたが、うまくいきました。
テスト済み:
Works(必要なjsonを返します):
curl -u "user:password" --data "json..." https://api.github.com/repos/<user>/<repo>/downloads
作品:
curl -H 'Authorization: token <token>' https://api.github.com/
動作しません(「無効な資格情報」を返します):
curl -H 'Authorization: token <invalid_token>' https://api.github.com/
動作しない(「見つかりません」):
curl -H 'Authorization: token <valid_token>' --data "json..." https://api.github.com/repos/<user>/<repo>/downloads
これは、Pythonコードに固有の問題ではないようです。json POSTデータは問題ないようで、OAuthトークン認証は(少なくとも部分的に)機能しているようです。しかし、これらを組み合わせると、機能しなくなります。