Salesforce Rest API更新データ
2977 ワード
公式ドキュメント
https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_update_fields.htm
client idとclient secretはconneted appで見つけることができます.usernameとpasswordはSalesforceのuserのユーザー名とパスワードです.
更新レコードUpdate a Record
curl https://yourInstance.salesforce.com/services/data/v20.0/sobjects/Account/001D000000INjVe -H "Authorization: Bearer token"-H "Content-Type: application/json"-d @patchaccount.json -X PATCH
SFが返すhttpコードが204であれば、更新に成功したことを示す
user関連データの更新
https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_update_fields.htm
client idとclient secretはconneted appで見つけることができます.usernameとpasswordはSalesforceのuserのユーザー名とパスワードです.
import requests as req
import json
testTokenUrl = "https://test.salesforce.com/services/oauth2/token"
testReqJson = {
"client_id": "xxx",
"client_secret": "xxx",
"username": "sandbox_dev",
"password": "password+securityToken",
"grant_type": "password"
}
header = {
"Content-Type": "application/x-www-form-urlencoded",
}
response = req.post(testTokenUrl, data=testReqJson, headers=header)
if response.status_code > 200:
print (response.text)
else:
token = json.loads(response.text)
accessToken = json.loads(response.text)['access_token']
print(accessToken)
更新レコードUpdate a Record
curl https://yourInstance.salesforce.com/services/data/v20.0/sobjects/Account/001D000000INjVe -H "Authorization: Bearer token"-H "Content-Type: application/json"-d @patchaccount.json -X PATCH
SFが返すhttpコードが204であれば、更新に成功したことを示す
def update_record_type_id(token, RecordTypeId, loanOfficeNameId):
print('Set record type id...')
header = {
"Content-Type": "application/json",
"Authorization": "Bearer " + token['access_token']
}
params = {
"RecordTypeId": RecordTypeId
}
body=json.JSONEncoder().encode(params)
patchURL = token['instance_url'] + "/services/data/v47.0/sobjects/loan__Office_Name__c/"+loanOfficeNameId
response = req.patch(patchURL,data=body, headers=header)
if response.status_code == 204:
print('set_record_type_id Done.')
else:
raise ImportException('Error: '+response.text)
user関連データの更新
def set_user_branch(branchName='aaa'):
token = get_token()
header = {
"Content-Type": "application/json",
"Authorization": "Bearer " + token['access_token']
}
params = {
"loan__Current_Branch__c": branchName,
"loan__Default_Branch__c": branchName
}
index = token['id'].rfind('/')
body=json.JSONEncoder().encode(params)
patchURL = token['instance_url'] + "/services/data/v{}/sobjects/User/{}".format(SF_API_VERSION, token['id'][index+1:])
# user id,
# patchURL = token['instance_url'] + "/services/data/v47.0/sobjects/User/"+Id
response = req.patch(patchURL,data=body, headers=header)
if response.status_code == 204:
print('Done.')
else:
raise ImportException('Error: '+response.text)