zoukankan      html  css  js  c++  java
  • Salesforce REST API 更新数据

    官方文档:

    https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_update_fields.htm

    如何生成access token, 其中client id 和 client secret可以在connected 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 code为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)
  • 相关阅读:
    文件上传长度限制
    js之图片放大
    Jquery中$与$.fn的区别
    取消svn和文件的关联
    Java——如何创建文件夹及文件,删除文件,文件夹
    SQL语法
    linux环境运行java项目并有外部引用jar
    Eclipse-与Centos远程调试
    Eclipse-远程调试
    使用java代码执行linux命令
  • 原文地址:https://www.cnblogs.com/iwangzheng/p/13431533.html
Copyright © 2011-2022 走看看