Skip to content

Instantly share code, notes, and snippets.

@Btibert3
Forked from wadewegner/upload_rest.py
Created June 26, 2017 15:09
Show Gist options
  • Save Btibert3/88872eb7a1ad989c4281c251b6a4a177 to your computer and use it in GitHub Desktop.
Save Btibert3/88872eb7a1ad989c4281c251b6a4a177 to your computer and use it in GitHub Desktop.
Upload attachment to Salesforce using Python
import requests
import base64
import json
from simple_salesforce import Salesforce
userName = ''
password = ''
securityToken = ''
instance = ''
sf = Salesforce(username=userName, password=password, security_token=securityToken)
sessionId = sf.session_id
account = sf.query("SELECT Id, Name FROM Account LIMIT 1")
accountId = account["records"][0]["Id"]
body = ""
with open("text.txt", "r") as f:
body = base64.b64encode(f.read())
response = requests.post('https://%s.salesforce.com/services/data/v29.0/sobjects/Attachment/' % instance,
headers = { 'Content-Type': 'application/json', 'Authorization': 'Bearer %s' % sessionId },
data = json.dumps({
'ParentId': accountId,
'Name': 'rest_test.txt',
'body': body
})
)
print response.text
import beatbox
import base64
userName = ''
securityToken = ''
password = '' + securityToken
svc = beatbox.PythonClient()
svc.login(userName, password)
body = ""
with open("text.txt", "rb") as f:
body = base64.b64encode(f.read())
res = svc.query("SELECT Id, Name FROM Account LIMIT 1")
accountId = res[0].Id
print res[0].Name
update_dict = {
'type' : 'Attachment',
'ParentId' : accountId,
'Name' : 'text.txt',
'Body' : body
}
results = svc.create(update_dict)
print results
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment