首页 > 解决方案 > 使用 simple-salesforce 创建外部用户

问题描述

我想创建一个外部用户,因为我想在创建用户后发送一封确认电子邮件,但我找不到使用 simple-salesforce 执行此操作的方法。

我已经看到使用 APEX 类站点可以做到(https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_classes_sites.htm?search_text=site)。

我怎样才能做到这一点?还有其他方法吗?

import json
from simple_salesforce import Salesforce, SalesforceLogin, SFType

def lambda_handler(event, context):
    session_id='session'
    instance='instance'
    sf = Salesforce(instance=instance, session_id=session_id)
    
    sftype_user = SFType('User', session_id, instance)
    
    params={
        "Username": "user@username.com",
        "FirstName": "User",
        "LastName": "Test",
        "Email": "user@username.com",
        "Alias": "user",
        "TimeZoneSidKey": "Europe/Berlin",
        "LocaleSidKey": "es_ES",
        "EmailEncodingKey": "ISO-8859-1",
        "ProfileId": "profileid",
        "LanguageLocaleKey":"es"
    }
    user = sftype_user.createUser(params)

    String userId = Site.createExternalUser(user, None, None, True)
    print(userId)

标签: pythonsalesforcesimple-salesforce

解决方案


“简单”使用 REST API。据我所知,没有与 Apex 的 Site 类方法对应的 REST API 调用。

您应该可以使用正常的用户创建调用,只需在其中传递ContactId正确的社区相关ProfileId。如果您遇到任何问题 - 编辑问题?

或者尝试编写一段适用于您的 Apex 代码并将其公开为REST 服务并从 Python 调用它。特别有用,如果您最终必须对用户做更多事情,也许让他成为组成员,也许分配一些权限集......您希望这是一个全有或全无的事务,而不是浪费单独的 API 调用.


推荐阅读