web-dev-qa-db-ja.com

サービスアカウントoauth2client.client.CryptoUnavailableErrorを使用したGoogle APIアクセス:使用可能な暗号ライブラリがありません

Pythonを使用してGoogleアナリティクスAPIにアクセスできるように、サービスアカウントアプリを作成しようとしています。 2つのことが私を混乱させています。まず、次のコードを使用すると、

`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')`

次のエラーが発生します。

`oauth2client.client.CryptoUnavailableError: No crypto library available`

少し調べてみたところ、サービスアカウントにアプリのドメイン全体の権限を付与することに関係している可能性があることがわかりました。しかし、Google Developers Consoleにログオンすると、セキュリティアイコンやその他のオプションボタンが見つかりません。どうぞよろしくお願いいたします。

16
user3277225

そのエラーはおそらくpython-opensslパッケージが必要であることを意味します。

apt-get install python-openssl
13
Wraezor Sharp

これは私のために(PEMに変換せずに)トリックをしました:

pip install PyOpenSSL

pip freezeはバージョン0.15.1を持っていると言っています

33
shacker

開発環境にpycryptoおよびpython-sslライブラリがインストールされている場合でも、このpycryptoライブラリをアプリケーションのapp.yamlファイルに追加する必要があります。

libraries:
- name: pycrypto
  version: "latest"
7
Nijin Narayanan

私は最近これを設定しましたが、 PyCrypto 2.6.1 を選択しましたが、前の回答で述べたようにpython-opensslを使用することもできます。

私が抱えていた唯一の問題であり、これを特定することはできませんが、Google Developer Consoleによって生成されたP12キーが(Content API for Shoppingへの)サービスアカウントAPI呼び出しで機能せず、キーを切り替える必要がありました物事を進めるためにPEM形式に。

私のセットアップ:(Win7、python 2.7.x、PyCrypto 2.6.1)

P12キーを使用しようとしたときに発生したエラーですが、後でPEMに変換すると解決しました。

エラー3:PKCS12形式はPyCryptoライブラリでサポートされていません。 NotImplementedError:PKCS12形式はPyCryptoライブラリでサポートされていません。 「PEM」(openssl pkcs12 -in xxxxx.p12 -nodes -nocerts> privatekey.pem)に変換するか、ネイティブコードがオプションの場合はPyOpenSSLを使用してみてください。

重要なことの1つは、Googleアナリティクスにアクセスして、サービスアカウントの作成時に作成されたクライアントのメールアドレスに適切な権限を付与することを忘れないでください。

4
davidtzau

OSX 10.11 El CapitanはOpenSSLを配布しなくなりました。 Homebrewと静的ビルドを使用してcryptographyをインストールできました:

env CRYPTOGRAPHY_OSX_NO_LINK_FLAGS=1 LDFLAGS="$(brew --prefix openssl)/lib/libssl.a $(brew --prefix openssl)/lib/libcrypto.a" CFLAGS="-I$(brew --prefix openssl)/include" pip install cryptography

より詳しい情報

0
Mikko Ohtamaa