Fx.message

Fx.message:和发送消息有关的API

1. send 发送文本消息

Fx.message.send(<String textMessage>, <List receiverIds>, <Channel channel>)

参数说明

参数 类型 说明
textMessage String 文本消息
receiverIds List 接收人id列表
channel Channel 消息通道

返回值类型

APIResult

返回值说明

返回的数据类型: String

Java举例

Channel channel = Channel.Service("FSAID_bebd374");
List receiverIds = Lists.newArrayList(1000); //消息接收用户
APIResult ret = Fx.message.send("这是一条文本消息",receiverIds,channel);

Groovy举例

Channel channel = Channel.Service("FSAID_bebd374")
List receiverIds = [1000] //消息接收用户
def (error,date,errorMessage) = Fx.message.send("这是一条文本消息",receiverIds,channel)

(1).参考Channel


2. send 发送卡片消息

Fx.message.send(<Card card>, <List receiverIds>, <Channel channel>)

参数说明

参数 类型 说明
card Card 卡片消息
receiverIds List 接收人id列表
channel Channel 消息通道

返回值类型

APIResult

返回值说明

返回的数据类型: String

Java举例

Card.Head head = Card.Head.create();
head.setTitle("head title");                     //卡片标题(必填)

Card.Body body = Card.Body.create();
body.setContent("body content");                 //卡片内容(必填)
body.setEntries(Maps.of("a", 1));                //卡片表格(可选)

Card.Foot foot = Card.Foot.create();
foot.setTitle("foot title");                     //卡片底部(必填)

ObjectCard.Builder builder = ObjectCard.Builder.create();
builder.setHead(head);
builder.setBody(body);
builder.setFoot(foot);
builder.setObjectApiName("AccountObj");          //跳转对象的APIName(必填)
builder.setObjectId("5cbd28e47cfed9ea0cca09e4"); //跳转对象的id(必填)

Groovy举例

def card = ObjectCard.builder {
  head {
    title = "head title" //卡片标题(必填)
  }
  foot {
    title = "foot title" //卡片底部(必填)
  }
  body {
    content = "body content" //卡片内容(必填)
    entries = [key: "value"] //卡片表格(可选)
  }
  objectApiName = "AccountObj" //跳转对象的APIName(必填)
  objectId = "5cbd28e47cfed9ea0cca09e4" //跳转对象的id(必填)
}
Channel channel = Channel.Service("DSTX")
List receiverIds = [1000]
def (error,date,errorMessage) = Fx.message.send(card,receiverIds,channel)

3. sendNotice 发送CRM通知

Fx.message.sendNotice(<String title>, <String content>, <List receiverIds>, <Notice notice>)

参数说明

参数 类型 说明
title String CRM通知标题
content String CRM通知内容
receiverIds List 接收人id列表
notice Notice 通知的类型,现有:
defaultNotice:普通通知,Notice notice = Notice.defaultNotice()
objectNotice:带对象详情页链接的crm通知,需要传对象的apiName和数据Id ,Notice notice = Notice.objectNotice(String apiName, String dataId)

返回值类型

APIResult

返回值说明

返回的数据类型: String

Java举例

List receiverIds = Lists.newArrayList("1000", "1001");
Notice objectNotify = Notice.objectNotice("AccountObj", "5fa4de2f832a9d00012868b8");
final APIResult ret = Fx.message.sendNotice("这也是一个标题", "这个是提醒的内容", receiverIds, objectNotify);
if (ret.isError()) {
    log.info(ret.message());
} else {
    log.info(ret.getData());
}

Groovy举例

List receiverIds = ['1000', '1001']
Notice objectNotify = Notice.objectNotice("AccountObj","5fa4de2f832a9d00012868b8")
def (Boolean error, String data, String errorMessage) = Fx.message.sendNotice("这也是一个标题","这个是提醒的内容",receiverIds, objectNotify)
if (error) {
log.info(errorMessage)
} else {
log.info(data)
}

4. throwErrorMessage 抛出异常信息,已知的确定的异常,主要作用为中断;在函数列表页面展示结果为成功;

Fx.message.throwErrorMessage(<String errorMessage>)

参数说明

参数 类型 说明
errorMessage String 异常信息

返回值类型

void

Java举例

Fx.message.throwErrorMessage(" 函数中断 ");

Groovy举例

Fx.message.throwErrorMessage(" 函数中断 ")

5. throwException 抛出异常信息,未知的不确定的异常,主要作用为抛错;在函数列表页面展示结果为失败;

Fx.message.throwException(<String errorMessage>)

参数说明

参数 类型 说明
errorMessage String 异常信息

返回值类型

void

Java举例

Fx.message.throwException(" 函数异常 ");

Groovy举例

Fx.message.throwException(" 函数异常 ")

6. createTrustGroup 创建企信业务群

Fx.message.createTrustGroup(<String apiName>, <String dataId>)

参数说明

参数 类型 说明
apiName String 对象apiName
dataId String 对象数据Id

返回值类型

APIResult

返回值说明

返回的数据类型: Map (sessionId: 业务群Id, name: 业务群名)

Java举例

APIResult ret = Fx.message.createTrustGroup("object_94QeC__c", "5dae6f48a5083da25946e68c");
if (ret.isError()) {
    log.info(ret.message());
} else {
    log.info(ret.getData());
}

Groovy举例

def (Boolean error, Map data, String errorMessage) = Fx.message.createTrustGroup('object_94QeC__c', '5dae6f48a5083da25946e68c')
if(error) {
    log.info(errorMessage)
} else {
    log.info(data)
}

注意事项

  • 使用该函数时需到管理后台的企信管理中开启该对象的业务群功能并做好相关配置

7. sendEmail 发送邮件

Fx.message.sendEmail(<List toList>, <String subject>, <String content>, <Boolean useSystemSend>)

参数说明

参数 类型 说明
toList List 接收人邮箱列表
subject String 邮箱题目
content String 邮箱正文
useSystemSend Boolean 是否用系统身份发送(传true应该是使用系统邮箱去发件,传false的话是使用函数触发人员绑定的纷享邮箱去发件)

返回值类型

APIResult

返回值说明

Java举例

List toList = Lists.newArrayList("xiexd@fxiaoke.com");
String subject = "自定义函数发件_主题";
String content = "自定义函数发件_正文";
APIResult ret = Fx.message.sendEmail(toList, subject, content, true);

Groovy举例

List toList = ["xiexd@fxiaoke.com"]
String subject = "自定义函数发件_主题"
String content = "自定义函数发件_正文"
def ret = Fx.message.sendEmail(toList, subject, content, true)

8. sendEmail 发送邮件,支持抄送和密送

Fx.message.sendEmail(<EmailAttribute attribute>)

参数说明

参数 类型 说明
attribute EmailAttribute 邮件相关信息

返回值类型

APIResult

返回值说明

Groovy举例

List toList = ["xiexd@fxiaoke.com"]
String subject = "自定义函数发件_主题112"
String content = "自定义函数发件_正文112"
List ccList = []
List bccList = []
boolean useSystemSend = true
String sender = "xxx@fxiaoke.com"

List attachments = [
  [
    "index": 0,
    "name": "测试邮件附件.jpg",
    "fileId":"N_202208_30_7e471b59774246f4b254c557d8d22a39.jpg",
    "size": 6105397,
  ]
]

EmailAttribute attribute = EmailAttribute.builder()
  .toList(toList)
  .ccList(ccList)
  .bccList(bccList)
  .subject(subject)
  .content(content)
  .sender(sender)
  .useSystemSend(useSystemSend)
  .attachments(attachments)
  .build();
log.info(attribute)
def ret = Fx.message.sendEmail(attribute)
log.info(ret)

(1).参考EmailAttribute


9. sendEmailByTemplate 使用邮件模板和数据发送邮件

Fx.message.sendEmailByTemplate(<String templateId>, <String objectId>, <List toList>, <Boolean useSystemSend>)

参数说明

参数 类型 说明
templateId String 模板id
objectId String 对象数据id
toList List 接收人邮箱列表
useSystemSend Boolean 是否使用系统邮箱(传true应该是使用系统邮箱去发件,传false的话是使用函数触发人员绑定的纷享邮箱去发件)

返回值类型

APIResult

返回值说明

Java举例

APIResult ret = Fx.message.sendEmailByTemplate("6142e00f16bd944a7c878b77", "609ce6c2131e59000172ecfb", Lists.newArrayList("xiexd@fxiaoke.com"), true);

Groovy举例

def ret = Fx.message.sendEmailByTemplate("6142e00f16bd944a7c878b77", "609ce6c2131e59000172ecfb", ["xiexd@fxiaoke.com"], true)

10. sendEmailByTemplate 使用邮件模板和数据发送邮件,,支持抄送和密送

Fx.message.sendEmailByTemplate(<EmailAttribute attribute>)

参数说明

参数 类型 说明
attribute EmailAttribute 邮件相关信息

返回值类型

APIResult

返回值说明

Groovy举例

List toList = ["liumh8848@fxiao.com"]
List ccList = ["xiexd@fxiaoke.com"]
List bccList = []
boolean useSystemSend = true

EmailAttribute attribute = EmailAttribute.builder()
  .toList(toList)
  .ccList(ccList)
  .bccList(bccList)
  .templateId("6142e00f16bd944a7c878b77")
  .objectId("609ce6c2131e59000172ecfb")
  .useSystemSend(useSystemSend)
  .build();

def ret = Fx.message.sendEmailByTemplate(attribute)
log.info(ret)

11. sendIMMessage 通用企信IM发送消息接口

Fx.message.sendIMMessage(<String sessionId>, <String messageType>, <String messageContent>, <int env>, <String employeeId>)

参数说明

参数 类型 说明
sessionId String 需要发送到的会话id, 操作者企业需要有这个会话,并且非系统操作者需要在群内
messageType String 消息类型,常用消息类型,文本:T,图片:I,图文:MIX,文件:D,高级文本:AT,通用模板消息:UGT
messageContent String 消息内容,文本为字符串,其他为对应的json格式,可以参考企信已经存在的消息格式
env int 是否互联,0:企业内,1:互联
employeeId String 发送者信息,格式 E.企业账号.员工id

返回值类型

APIResult

返回值说明

返回的数据类型: Map

Java举例

String content = "大家好";
String employeeId = "E.78810.1004";
APIResult ret = Fx.message.sendIMMessage("d5a3f0ba6dff4c488069efdd6d00a747", "T", content, 0, employeeId);
log.info(ret);
if (ret.isError()) {
  log.info(ret.message());
} else{
  log.info(ret.getData());
}

Groovy举例

String content = "大家好"
String employeeId = "E.78810.1004"
def(boolean error, Map data, String message) = Fx.message.sendIMMessage("d5a3f0ba6dff4c488069efdd6d00a747", "T", content, 0, employeeId)
if (error) {
  log.info("error: " + message)
} else {
  log.info(data)
}

参考类 com.fxiaoke.functions.model.Channel

1. 企信服务号通道

Channel.Service(<String appId>)

参数说明

参数 类型 说明
appId String 服务号的appId

返回值类型

Channel

返回值说明

Channel

Java举例

Channel channel = Channel.Service("appiD"); //发送服务号

Groovy举例:

Channel channel = Channel.Service("appiD") //发送服务号

2. 客群通道

Channel.ObjectSession(<String objectApiName>, <String id>)

参数说明

参数 类型 说明
objectApiName String 对象apiName:AccountObj
id String 对象id

返回值类型

Channel

返回值说明

Channel

Groovy举例:

Channel channel = Channel.ObjectSession("AccountObj", "61848edfd9007e00019ee222") //发送客群

参考类 com.fxiaoke.functions.model.EmailAttribute

字段说明

参数 类型 说明
toList List 接收人邮箱列表
ccList List 抄送邮箱列表
bccList List 密送邮箱列表
attachments List 附件
subject String 邮箱题目
content String 邮箱正文
useSystemSend Boolean 是否用系统身份发送(传true应该是使用系统邮箱去发件,传false的话是使用函数触发人员绑定的纷享邮箱去发件),默认为true
templateId String 模板id
objectId String 对象数据id
sender String 指定发送人邮箱(必须是后台邮件管理配置过的系统邮箱)
attachmentZipList List 附件下载链接
2024-09-15
15 15