学习目标
完成本单元后,您将能够了解到:
- Chatter Feed上下文注意事项
- Chatter Feed Canvas应用访问注意事项
Canvas使您可以将画布应用程序公开为Feed项。该Feed为用户提供有关Salesforce内部发生的信息以及他们所关注的记录和组的信息。
开发人员可以在Feed中使用画布应用来:
- 从发布者的画布应用程序或Chatter API发布到Chatter摘要。
- 在Chatter摘要项目中显示画布应用程序。
创建画布应用程序Chatter订阅源项时,它包含缩略图图像,链接标题和说明。在Salesforce Classic中,当用户单击链接或说明时,画布应用会在Feed中打开。如果用户再次点击该链接,则内容会折叠,从而为用户提供在其Feed中工作的无缝体验。在Lightning Experience中,当用户单击链接或描述时,用户将被重定向到专用的画布应用页面。
例如,您可能有一个画布应用程序,允许用户记录他们的工作时间。您现在可以以编程方式创建一个显示画布应用程序的供稿项,该应用程序向用户显示当前记录的小时数。
此外,Feed项可以显示取决于当前用户的操作。因此,画布应用程序可以将供稿项目发布给用户的经理,经理可以批准或拒绝记录的小时数。由于内容是从canvas应用程序提供的,因此开发人员可以完全控制该行为。
Chatter Feed上下文注意事项
当您在Feed项目中显示画布应用程序时,您从签名请求或getContext()调用中收到的上下文信息包含特定于Feed的信息:
- 位置 – 如果画布应用程序位于Feed中,则Environment.displayLocation字段包含该值ChatterFeed。
- 参数 – 创建包含画布应用程序的订阅源项时,可以指定JSON字符串作为参数值。当canvas应用程序接收上下文时,feed项中的参数将包含在Environment.Parameters对象中。
- Size-Environment.Dimensions对象包含有关canvas应用程序大小的信息。
- 画布应用高度默认为100像素。
- 画布应用程序宽度默认为420像素,这与Feed中画布应用程序的最大宽度相同。
- Feed中画布应用的最大高度为400像素。
- Feed中画布应用的最大宽度为420像素。
- 此代码段显示Feed中画布应用的默认大小值:
“dimensions”:
{
“width”: “420px”,
“height”: “100px”, “maxHeight”: “400px”, “maxWidth”: “420px”
} - Feed的固定宽度为420像素。例如,如果将画布应用的大小调整为200像素,则Feed宽度仍为420像素。
- 您可以使用Canvas SDK中的resize()方法将画布应用程序的值更改为maxHeight和maxWidth。
- 画布应用高度默认为100像素。
Chatter Feed Canvas应用访问注意事项
修改Feed中显示的画布应用时,请记住以下注意事项:
- 如果删除了画布应用程序且该应用程序位于Feed项目中,则这些Feed项目将保留。如果用户访问其中一个Feed项,则会收到canvas应用程序不存在的错误。
- 如果删除用户对画布应用程序的访问权限且该应用程序位于Feed项目中,则这些Feed项目将保留。如果用户访问其中一个Feed项,他们将收到一条错误消息,表明他们无权访问画布应用。
- 通过发布者操作或Chatter API创建画布应用程序源项时,Salesforce会检查画布应用程序是否存在以及用户是否具有该权限。
- 如果画布应用程序不存在,则无法创建订阅源项并返回错误。
- 如果画布应用程序存在,但尝试创建订阅源项的用户无权访问画布应用程序,则会创建订阅源项。但是,用户将无法查看订阅源项并返回错误。
- 如果画布应用程序不存在,则无法创建订阅源项并返回错误。
- 如果画布应用程序尝试执行用户没有权限的操作,则该操作将失败,并且画布应用程序将收到错误。例如,如果应用尝试创建商品记录但用户没有商品的创建权限,则该应用将收到错误。然后,画布应用程序应将错误转发给用户。