Salesforce触っていると、アドホックにデータを操作したいときが結構あるんですが、Pythonってそういうのないのかなーと思って、ちょっくら調べてみましたので備忘として残しておきます。
pyforce
- github: https://github.com/alanjcastonguay/pyforce
- PyPI: https://pypi.python.org/pypi/pyforce
- Python Version: 2系
- SOAP API利用
インストールはpipで
1 |
$ pip install pyforce |
ログイン
1 2 3 4 |
import pyforce svc = pyforce.PythonClient() svc.login('{username}', '{password}') |
Client呼び出しがpyforce.PythonClient()になっているところが、githubに書かれているサンプルとは異なるので注意。
レコード取得
1 |
svc.query('SELECT Id, FirstName, LastName FROM Contact LIMIT 10') |
レコード作成
1 2 3 4 5 6 7 8 9 10 |
svc.create([ { 'type': 'Contact', 'LastName': 'Created From Python.', 'Account': { 'type': 'Account', 'ExKey__c': 'ABCD' } } ]) |
describeGlobal
1 2 |
dg = svc.describeGlobal() print(dg['types']) |
describeSObjects
1 2 |
desc = svc.describeSObjects('Contact') print(desc[0].fields) |
メール送信
1 2 3 4 5 |
svc.sendEmail([{ 'subject': 'HOGE', 'plainTextBody': 'Test From Python', 'toAddresses': ['hoge@example.com'] }]) |
simple-salesforce
- github: https://github.com/heroku/simple-salesforce
- PyPI: https://pypi.python.org/pypi/simple-salesforce
- Python Version:2.6, 2.7, 3.3, 3.4
- ログインだけSOAPで他はREST
インストール
1 |
$ pip install simple-salesforce |
ログイン
1 2 3 |
from simple_salesforce import Salesforce sf = Salesforce(username='{username}', password='{password}', security_token='') |
レコード作成
1 2 3 4 5 6 |
sf.Contact.create({ 'LastName': 'simple_salesforce', 'Account': { 'ExKey__c': 'ABCD' } }) |
レコード取得(IDベース)
1 |
sf.Contact.get('003***************') |
レコード取得(外部IDベース)
1 |
sf.Contact.get_by_custom_id('ExKey__c', 'ABC123') |
レコード取得(クエリ)
1 |
sf.query('SELECT id, LastName, FirstName FROM Contact LIMIT 10') |
オブジェクトのメタデータ取得
1 |
sf.Contact.metadata() |
オブジェクトのdescribe
1 |
sf.Contact.describe() |
DescribeGlobal
1 |
sf.describe()["sobjects"] |
コメントを残す