Tôi đang cố tạo ứng dụng tài khoản dịch vụ để tôi có thể truy cập api Google Analytics bằng Python. Hai điều làm tôi bối rối. Thứ nhất, khi tôi sử dụng đoạn mã sau:
Truy cập API của Google bằng Tài khoản Dịch vụ oauth2client.client.CryptoUnavailableError: Không có thư viện mật mã nào
`from oauth2client.client import SignedJwtAssertionCredentials
client_email = "#####client_email#######.gserviceaccount.com"
with open("XXXXXX.p12") as f:
private_key = f.read()
credentials = SignedJwtAssertionCredentials(client_email, private_key,'https://www.googleapis.com/auth/sqlservice.admin')`
tôi nhận được lỗi sau:
`oauth2client.client.CryptoUnavailableError: No crypto library available`
Sau khi thực hiện một nghiên cứu nhỏ, tôi phát hiện ra rằng điều này có thể có để làm với cấp ứng dụng rộng tên miền quyền đối với tài khoản dịch vụ. Tuy nhiên, khi tôi đăng nhập vào Google Developers Console, tôi không thể định vị biểu tượng bảo mật hoặc nút tùy chọn khác. Bất kỳ giúp đỡ nhiều đánh giá cao cảm ơn bạn.
Khi chuyển đổi file 'p12' đến một 'pem' như @davidtzau mô tả bạn sẽ cần phải nhập cụm mật khẩu mặc định mà Google đặt trên tệp 'p12' là' notasecret'. Khi nội dung 'pem' được xuất vào tệp' pem' mới, nó không còn được bảo vệ bởi cụm mật khẩu nữa. Mặc dù thực tế này, mô đun oauth2client đã chấp nhận một cách duyên dáng nội dung 'pem' mà không có cụm mật khẩu mặc dù nó mặc định giả sử một cụm mật khẩu của' notasecret': https://google-api-python-client.googlecode.com/hg/docs/epy /oauth2client.client.SignedJwtAssertionCredentials-class.html –