3

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 ドキュメントへのリンク

4

1 に答える 1

3

辞書の「本文」の値は、ファイル名ではなく、base64 でエンコードされたファイルの内容である必要があります。ファイルの内容を自分で読み取ってエンコードする必要があります。例えば

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 }

...

アタッチメントに関するドキュメント

于 2014-04-26T15:56:47.037 に答える