Tôi dường như đang gặp sự cố với SSL bất cứ khi nào cố gắng sử dụng oAuth2 bằng Python. Tôi đã dành hầu hết các buổi chiều cố gắng để gỡ lỗi nó nhưng dường như không thể tìm ra nó.Python - Vấn đề SSL với Oauth2
Dưới đây là Python Script của tôi (Nice và đơn giản):
import oauth2.oauth2 as oauth
import urlparse
import time
## If you're actually processing requests, you'll want this
# import simplejson
### GET A REQUEST TOKEN ###
consumer = oauth.Consumer(key="***KEYHERE***", secret="***KEYSECRETHERE***")
request_token_url = 'https://api.instagram.com/oauth/access_token'
client = oauth.Client(consumer)
resp, content = client.request(request_token_url, "GET")
request_token = dict(urlparse.parse_qsl(content))
token = oauth.Token(request_token['oauth_token'], request_token['oauth_token_secret'])
Và những lỗi từ Python Interpreter:
Traceback (most recent call last):
File "E:\Projects\oAuth2Test\test.py", line 16, in <module>
resp, content = client.request(request_token_url, "GET")
File "E:\Projects\oAuth2Test\oauth2\oauth2.py", line 682, in request
connection_type=connection_type)
File "E:\Projects\oAuth2Test\httplib2\httplib2.py", line 1445, in request
(response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
File "E:\Projects\oAuth2Test\httplib2\httplib2.py", line 1197, in _request
(response, content) = self._conn_request(conn, request_uri, method, body, headers)
File "E:\Projects\oAuth2Test\httplib2\httplib2.py", line 1133, in _conn_request
conn.connect()
File "E:\Projects\oAuth2Test\httplib2\httplib2.py", line 914, in connect
raise SSLHandshakeError(e)
SSLHandshakeError: [Errno 1] _ssl.c:503: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Bây giờ, chỉ vì vậy nó được biết đến, tôi có cacerts.txt tôi rằng đến với httplib2 ở nơi thích hợp và nó được tìm thấy, nhưng tôi vẫn còn có vấn đề này. Bất kỳ trợ giúp được đánh giá cao, cảm ơn!
'cacerts.pem' này có vẻ hoàn chỉnh hơn nhiều. Liên kết tiện dụng. –
Là một hack nhanh, bạn cũng có thể ghi đè lên cacerts.txt bằng cacerts.pem ở trên - nhược điểm là bạn cần phải chắc chắn rằng điều này được thực hiện trong tất cả các virtualenv của bạn - vì vậy nó không thực sự lý tưởng. – Damian