我正在将 AgileCRM 与 Google Apps 和上下文小工具集成。我能够相当快地破解 open-auth & gadget xml。但是,我对上下文小工具有疑问。
要求很简单——它需要获取发件人的电子邮件地址和姓名。
接下来,如果正文或主题中有任何电子邮件地址,它也需要获取它。
我发现我们不能提供多个预装提取器(输出是随机匹配的)并开始编写自定义提取器。我的提取器相当简单——它只获取 from_name、from_personal 和 from_subject。
<?xml version="1.0" encoding="UTF-8" ?>
<OpenCOBData id="Agile">
<ExtractorSpec platform="gmail" language="en">
<Response platform="gmail" format="cardgadget">
<Output name="email_sender">{@__FROM_ADDRESS__}</Output>
<Output name="email_name">{@__FROM_PERSONAL__}</Output>
<Output name="email_subject">{@__SUBJECT__}</Output>
</Response>
</ExtractorSpec>
</OpenCOBData>
没有问题。当与以下扩展一起使用时,它也能很好地工作。
<Extension id="FromEmailAddressExtractor" type="contextExtractor">
<Name>Email ids in From</Name>
<Url>623403448797:Agile</Url>
<Triggers ref="AgileCRMGadget"/>
<Scope ref="emailFrom"/>
<Scope ref="emailName"/>
<Scope ref="emailBody"/>
<Scope ref="emailSubject"/>
<Container name="mail"/>
</Extension>
因此,我可以毫无问题地获取发件人的姓名和电子邮件。但是,当我现在尝试获取主题或正文中的电子邮件地址时,就会出现问题。
<Extension id="SubjectBodyEmailAddressExtractor" type="contextExtractor">
<Name>Email ids in Subject or body</Name>
<Url>google.com:EmailAddressExtractor</Url>
<Param name="email" value=".*"/>
<Triggers ref="AgileCRMGadget"/>
<Scope ref="emailBody"/>
<Scope ref="emailSubject"/>
<Container name="mail"/>
</Extension>
当我添加这个时,只有这个会触发小工具,我错过了发件人的电子邮件和姓名。它也可以单独工作,但两者都可以,只有这会触发小工具。
有没有办法让它同时适用于两者?在我看来,第一个触发的将触发小工具。
我可以有一个定制和预先确定的结果吗?如果是,请让我知道我是否在某个地方出错了。
谢谢。