通过Beatbox,Python将附件上载到Salesforce API

时间:2014-04-26 14:49:49

标签: python python-2.7 salesforce beatbox

我使用beatbox和python将文档上传到Salesforce,文件正确附加,但文件中包含的数据完全损坏。

def Send_File():
    import beatbox
    svc = beatbox.Client()  # instantiate the object
    svc.login(login1, pw1)  # login using your sf credentials

    update_dict = {
        'type':'Attachment',
        'ParentId': accountid,
        'Name': 'untitled.txt',
        'body':'/Users/My_Files/untitled.txt',
            }
    results2 = svc.create(update_dict)
    print results2

输出是:

    00Pi0000005ek6gEAAtrue

所以事情进展顺利,但当我转到salesforce记录00Pi0000005ek6gEAA并查看文件时,该文件的内容是:

   ˝KÆœ  Wøä ï‡Îä˜øHÅCj÷øaÎ0j∑ø∫{b∂Wù

我不知道造成这个问题的原因是什么,我找不到其他人发生这种情况的情况

链接 SFDC Documentation on uploads

1 个答案:

答案 0 :(得分:2)

&#39>'身体'字典中的值应该是文件的base64编码内容,而不是文件名。您需要自己读取和编码文件内容。 e.g。

body = ""
with open("/Users/My_Files/untitled.txt", "rb") as f:
    body = f.read().encode("base64")

update_dict = {
    'type' : 'Attachement'
    'ParentId' : accountId,
    'Name' : 'untitled.txt',
    'Body' : body }

...

关于Attachment

的文档