1

Imgur API に頭を悩ませようとしています。認証ヘッダーを Imgur に送信する方法の良い例をいくつか見つけましたが、それらはすべて urllib2 を使用しており、pyhton 3.4.1 を使用すると urllib3 しか使用できないようです。

そのため、いくつかのことを試しましたが、どれも機能していないようです。

この投稿から、basic_auth ヘッダーを使用してみました:

http = urllib3.PoolManager()
header = urllib3.make_headers(basic_auth="Client-ID" + CLIENT_ID)
r = http.request('GET', 'https://api.imgur.com/3/gallery/r/pics', headers=header)

それは私に403エラーを与えます。

この投稿から、代わりにこの方法を試しました:

http = urllib3.PoolManager()
header= {"Content-Type": "text", "Authorization": "Client-ID" + CLIENT_ID}
r = http.request('GET', 'https://api.imgur.com/3/gallery/r/pics', headers=header)

これも 403 を返します。

しかし、urllib3 のドキュメントを読んで一歩近づき、代わりに Authorization をフィールドとして送信してみました。

http = urllib3.PoolManager()
r = http.request('GET', 'https://api.imgur.com/3/gallery/r/pics', fields={"Authorization": "Client-ID " + CLIENT_ID})

ただし、これは 401 を返します。

これらの方法または他の方法を使用して、Imgur API との基本的な匿名のやり取りを理解するのを手伝ってくれる人がいますか?

4

1 に答える 1

2

imgur の API ドキュメントに従って、認証ヘッダーを次のように送信する必要があります。

Authorization: Client-ID YOUR_CLIENT_ID

この行で:

header = urllib3.make_headers(basic_auth="Client-ID" + CLIENT_ID)

あなたはそれを次のように送信しています: Authorization: Client-IDYOUR_CLIENT_ID

間にスペースが必要です。

于 2014-05-29T16:45:04.780 に答える