nforce の Python 版みたいなのが欲しくてそれらしいライブラリがないか調べていたところ、こちらの記事が大変参考になったので、プラスアルファで自分で調べたものも整理しておきます。
http://freedom-man.com/blog/python-salesforce/
参考にしたサイト
- PythonのSalesforceライブラリ調べてみた
- Python and the Force.com REST API: Simple simple-salesforce example - Developer Relations
- Salesforce 公式ブログ。2014年1月
- Dreamforce’14 Salesforce Python SDK for REST/SOAP APIs
- Using force.com from your Heroku apps
- Heroku 公式ブログ。2014年7月
- 紹介されているのはこの3つ
- nsimple-salesforce (REST)
- salesforce-python-toolkit (SOAP) # 古いらしい
- salesforce-bulk (Bulk API)
自分がライブラリに期待していること
- 接続アプリケーションを作成して consumer key, consumer secret を取得できれば、username と password なしで認証ができる
- REST API が使える
ライブラリ一覧
★ はおすすめ度(使えそう・役に立ちそう度)。
また、pyforce と simple-salesforce については冒頭に紹介したブログに使い方も載っているので参考になります。
★☆☆ pyforce
- PyPI: https://pypi.python.org/pypi/pyforce
- GitHub: https://github.com/alanjcastonguay/pyforce
- API: SOAP
# memo
PyPI の説明に
A Python client wrapping the Salesforce.com SOAP API
★★☆ simple-salesforce
- PyPI: https://pypi.python.org/pypi/simple-salesforce
- GitHub: https://github.com/heroku/simple-salesforce
- API: ログインのみ SOAP, 他は REST
# memo
Heroku のリポジトリにあるのである程度信頼できそう。
☆☆☆ salesforce-python-toolkit
# memo
Heroku のブログでも紹介されてたが、古い(最終更新が2011年) ので使うことはなさそう。
★☆☆ salesforce-oauth-request
- PyPI: https://pypi.python.org/pypi/salesforce-oauth-request
- GitHub: https://github.com/heroku/salesforce-oauth-request
# memo
これも Heroku のリポジトリにあった。
以下、README から引用すると
A bit of Requests driven utility code to drive the Salesforce.com Oauth2 Web flow. Use this module to login to a Salesforce account using just the username and password.
というわけで OAuth と言いつつ username と password が必要?(未確認)
★★☆ salesforce-python-sdk
- PyPI: https://pypi.python.org/pypi/salesforce-python-sdk/0.1.3
- GitHub: https://github.com/htarevern/salesforce-python-sdk
- API: SOAP, REST
# memo
README には書いてないけど、username, password なしの OAuth2 認証に対応してる?
★☆☆ python-salesforce-client
# memo
Heroku のリポジトリにあったけど…READMEなし
番外編
★★☆ salesforce-oauth2
OAuth2 ログイン部分のみのサンプルコード?使ってみたい。
(2016/07/10追加)python-social-auth
- PyPI: https://pypi.python.org/pypi/python-social-auth/
- GitHub: https://github.com/omab/python-social-auth
- 公式ドキュメント: http://python-social-auth.readthedocs.io/en/latest/
ライブラリ自体は Salesforce に限定せず、Twitter や Google など様々な web サービスとの認証機能を実装するためのもの。
これが Salesforce にも対応してるようなので、OAuth2 の実装はこれを使うと良さそうです。
http://python-social-auth.readthedocs.io/en/latest/backends/salesforce.html
(Gist) https://gist.github.com/joshbirk/8363143
simple-salesforce 使った OAuth2 認証のサンプルコード。
ちょっと改良して以下のようにすると動きました。
まとめ
というわけで「コレだ!」というのは見つからなかったんですが
使えそうだなーと思ったのは simple-salesforce と OAuth2 のサンプルコード でしょうか。
(2016/01/29追記)
実際に simple-salesforce を試してみた例。