通过简单销售创建外部用户

问题描述

我想创建一个外部用户,因为我想在用户创建后发送一封确认电子邮件,但是我找不到简单的销售方式来完成此任务。

我已经看到,使用APEX类Site可以进行(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,True)
    print(userId)

解决方法

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

您应该能够使用普通的用户创建调用,只需在其中传递ContactId和正确的社区相关ProfileId即可。如果您遇到任何问题,请编辑问题?

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