画布开发(1)介绍Canvas

学习目标

完成本单元后,您将能够了解到:

  • 画布场景
  • Canvas应用程序出现的位置
  • 支持的浏览器
  • 支持的Salesforce版本
  • 需要用户权限
  • 用户界面注意事项
  • Canvas App Process
  • Canvas个人应用程序

Canvas使您可以轻松地在Salesforce中集成第三方应用程序。 Canvas是一组工具和JavaScript API,可用于将应用程序公开为画布应用程序。这意味着您可以将新的或现有的应用程序作为Salesforce体验的一部分提供给用户。

您现在可以使用这些工具在Canvas中集成您的技术,而不是重新设计和重新集成外部应用程序。 Canvas包含处理以下内容的工具:

  • 身份验证 – 如果您的应用程序需要授权,则可以使用已签名的请求或OAuth 2.0来实施。
  • Context-API支持,使您可以检索有关运行画布应用程序的环境的上下文信息。
  • 跨域XHR-JavaScript支持跨域XML HTTP请求返回Salesforce域。
  • 调整大小 – 支持调整画布应用程序大小的方法。
  • Events-Events提供基于JavaScript的方式在canvas应用程序之间发送和接收事件。使用事件可在单个页面上启用多个画布应用程序之间的通信。
  • Visualforce中的Canvas应用程序 – 一个Visualforce组件,允许您在Visualforce页面上公开您的画布应用程序。
  • Publisher中的Canvas应用程序 – 允许您将画布应用程序添加为自定义操作,并将发布者扩展为包含画布应用程序。
  • Chatter Feed中的Canvas应用程序 – 允许您将画布应用程序公开为Feed项。
  • Salesforce应用程序中的画布 – 使您的画布应用程序在Salesforce应用程序中可用。

您希望作为画布应用程序公开的第三方应用程序可以使用任何语言编写。唯一的要求是应用程序具有安全URL(HTTPS)。

画布场景

从高级视图来看,有两种常见的Canvas实现方案。

  • 应用程序集成 – 您是构建云应用程序的合作伙伴,系统集成商或客户,您希望将这些应用程序与Salesforce集成。
  • 应用程序合理化/企业桌面 – 您是一个大型组织,除了Salesforce之外,还有许多用户可以访问的现有应用程序。您希望将这些应用程序集成到Salesforce中,以便用户可以在一个位置完成所有任务。

Canvas应用程序出现的位置

Canvas应用程序可以出现在几个地方。

  • 在创建它的组织中的Canvas App Previewer中
  • 在Chatter摘要中,如果您将画布应用程序编码为显示在那里,并且当前用户可以访问画布应用程序
  • 在Chatter选项卡的Chatter应用程序列表中,为任何被允许访问它的用户
  • 作为Salesforce应用程序导航菜单中的一个选项,适用于已被允许访问它的任何用户
  • 将Open CTI呼叫控制工具添加到呼叫中心的定义文件后,在其中
  • 在Chatter发布者和Salesforce应用操作栏中,如果将其配置为显示为快速操作
  • 将Salesforce控制台添加为自定义控制台组件后,在Salesforce控制台中
  • 将Visualforce页面添加到页面并将该页面提供给用户后,在Visualforce页面中
  • 在Chatter应用程序列表的“配置文件”页面中,适用于已被允许访问它的任何用户
  • 将画布应用程序添加到页面布局后,在标准或自定义对象的页面布局中。根据您将画布应用程序放置在页面布局上的位置,画布应用程序可以显示在记录详细信息页面或移动卡中。

显示已安装的画布应用程序取决于在Salesforce中创建连接的应用程序时在“位置”字段中选择的值。

  • Chatter Feed-画布应用程序显示在Feed中。如果选择此选项,则必须创建CanvasPost订阅源项并确保当前用户可以访问画布应用程序。
  • Chatter选项卡 – 画布应用程序显示在Chatter选项卡上的应用程序导航列表中。如果选择此选项,画布应用程序将自动显示在那里。
  • 控制台 – 画布应用程序显示在Salesforce控制台的页脚或侧边栏中。如果选择此选项,则必须通过将画布应用程序添加为自定义控制台组件来选择画布应用程序在控制台中显示的位置。
  • 布局和移动卡 – 画布应用程序可以显示在页面布局或移动卡上。如果选择此选项,则可以通过将画布应用程序添加到页面布局来选择画布应用程序的显示位置。
  • Mobile Nav-可从导航菜单访问画布应用程序。
  • 打开CTI – 画布应用程序出现在呼叫控制工具中。如果选择此选项,则必须在呼叫中心的定义文件中指定画布应用程序才能显示。
  • Publisher – 画布应用程序显示在Chatter发布者和操作栏中。如果选择此选项,则还必须创建画布自定义操作并将其添加到全局发布者布局或对象的页面布局。
  • Visualforce页面 – 画布应用程序可以显示在Visualforce页面上。如果添加组件以在Visualforce页面上公开画布应用程序,请确保为画布应用程序选择此位置;否则,你会收到一个错误。

支持的浏览器

Canvas支持以下浏览器的最新版本:

  • Mozilla®Firefox®(首选)
  • 谷歌Chrome™
  • Microsoft®InternetExplorer®(确保禁用兼容模式)
  • Microsoft®Edge
  • Apple®Safari®(确保将Block Cookies设置为Never)

有关特定版本和一些重要注意事项,请参阅Salesforce联机帮助中支持的浏览器主题。由于Canvas不是基于Lightning构建的,因此它仍然支持Microsoft®InternetExplorer®11。

如果您的应用使用会话Cookie,则可能需要将P3P标头设置为允许第三方Cookie或更改浏览器设置以允许所有会话Cookie。

支持的Salesforce版本

Canvas支持这些Salesforce版本:

EditionCreate a canvas appPublish a canvas appInstall a canvas app
GroupYes*NoYes*
ProfessionalYes*NoYes*
EnterpriseYesNoYes
UnlimitedYesNoYes
PerformanceYesNoYes
DeveloperYesYesYes

*如果组织中启用了配置文件和页面布局,则组和专业版只能使用或创建具有允许用户值“管理员批准的用户已预授权”的画布应用程序。

用户权限要求

创建画布应用程序并在Canvas App Previewer中查看它们需要以下用户权限:

  • “Customize Application”
  • “Modify All Data”

用户界面注意事项

画布的尺寸

画布应用程序的框架大小取决于应用程序显示的位置。使用SDK时,这些值将在Dimensions对象中返回。

注意:如果您计划在Salesforce应用程序中使用画布应用程序,请考虑移动设备屏幕大小。有关更多信息,请参阅Salesforce App中的Canvas。

Location描述
Chatter tab默认尺寸为800像素(宽)乘900像素(高)。最大尺寸为1,000像素(宽)×2,000像素(高)。
Chatter feed默认尺寸为420像素(宽)×100像素(高)。最大尺寸为420像素(宽)×400像素(高)。
Open CTI默认和最大尺寸由您设置自定义控制台组件的方式决定。
Publisher设置画布发布者操作的方式决定了默认高度。默认宽度为522像素。最大尺寸为522像素(宽)×500像素(高)。
Salesforce Console默认和最大尺寸由您设置自定义控制台组件的方式决定。
Visualforce page默认尺寸为800像素(宽)乘900像素(高)。开发人员可以通过修改apex:canvasApp组件上的属性来更改这些维度。

Logo Image

当有人安装您的画布应用程序时或在OAuth身份验证期间,当提示用户允许该应用程序运行时,将显示与画布应用程序关联的徽标图像。我们建议您使用256像素(高)×256像素(宽)的图像。

Icon Image

与画布应用程序关联的图标图像显示在这些位置。

  • Chatter选项卡上Chatter应用程序列表中画布应用程序链接的左侧
  • Canvas App Previewer中画布应用程序链接的左侧
  • 在Salesforce导航菜单中

我们建议您使用大小为60像素(宽)乘60像素(高)的图像,以便图标在移动和Salesforce站点中都能正确显示。如果您没有计划在Salesforce应用程序中显示图标,则可以使用16像素(宽)乘16像素(高)的较小图标大小。

缩略图

当有人访问Feed中的画布应用程序时,将显示与画布应用程序源项关联的缩略图图像。如果指定,此图像将显示在Feed项标题和说明旁边。

我们建议您使用尺寸为120像素(宽)×120像素(高)或更小的图像。

Canvas App Process

在创建,发布,安装和运行画布应用程序的过程中,开发人员,管理员和用户都需要执行操作,如下图所示。

Canvas Personal Apps

Canvas个人应用程序允许您创建专为跨组织的最终用户设计的连接应用程序。使用canvas个人应用程序,您可以自行安装应用程序,而无需依赖组织管理员进行分发。

以前,只有管理员可以安装画布应用程序。管理员仍然可以安装画布应用,但现在开发人员可以创建最终用户可以自行安装的画布个人应用。

最终用户可以直接从Chatter选项卡安装和使用画布个人应用程序(前提是他们在Salesforce中具有适当的权限)。当最终用户安装应用程序时,系统会提示他们允许应用程序使用其Salesforce数据。

创建画布个人应用程序类似于创建任何画布应用程序,除了:

  • 无论您是否使用OAuth或签名请求作为访问方法,系统都会提示用户在首次访问应用时批准或拒绝画布个人应用。这是因为初始访问会触发OAuth批准流程。初始访问后,将透明地识别用户,并且不会提示用户进行批准或凭据(只要他们登录到Salesforce)。
  • 使用画布个人应用程序时,仅安装应用程序的元数据,而不安装其他软件包组件(例如Apex类和Visualforce组件)。这有助于广泛安装应用程序,并允许您将应用程序的功能限制为仅限最终用户所需的功能。

有关托管和非托管软件包的信息,请参阅“ISVforce指南”中的“软件包概述”。

Canvas Personal App Process

创建画布个人应用程序与创建任何画布应用程序类似。但是,您将画布个人应用程序直接分发给最终用户,最终用户通过您提供的链接安装它,并将应用程序与Salesforce数据集成。安装应用程序后,最终用户可以直接从Chatter选项卡运行它。

以下是如何为最终用户提供canvas个人应用程序。

  1. 验证组织管理员是否已在目标组织中启用了个人应用程序。有关详细信息,请参阅在组织内启用Canvas Personal Apps。
  2. 您创建应用程序,并指定它是一个画布个人应用程序。有关详细信息,请参阅“将应用程序设为画布个人应用程序”。
  3. 最终用户单击您提供的应用程序链接。例如,链接可以是您网站上的按钮,也可以通过电子邮件发送。单击该链接可调用该应用的OAuth批准过程。以下是该应用程序链接的示例:
    https://login.salesforce.com/services/oauth2/authorize?response_type=code&client_id=<your_client_id>&redirect_uri=<your_redirect_uri>
  4. 出现提示时,最终用户批准该应用程序并允许访问Salesforce数据。
  5. OAuth批准流程以异步模式触发画布安装程序。画布安装程序从API获取应用程序的上下文信息,并安装应用程序的元数据。该应用程序安装在后台,最终用户在安装完成后会收到一封电子邮件。
    注意:仅安装了canvas个人应用程序的元数据。通常与canvas应用程序一起打包的任何其他组件都不随应用程序一起安装。这意味着用户只能获得他们需要的功能,并且安装快速轻便。但是,如果管理员选择为整个组织安装画布个人应用程序,则会安装其他软件包组件,就像使用任何画布应用程序一样。
  6. 用户通过单击Chatter选项卡中的应用程序图标开始使用画布个人应用程序。

在组织内启用Canvas个人应用程序

组织的管理员控制用户是否可以在该组织内安装画布个人应用程序。在尝试创建画布个人应用程序之前,请验证组织管理员是否已启用画布个人应用程序。

以下是组织管理员如何启用画布个人应用程序。

  1. 在“设置”中,在“快速查找”框中输入已连接的应用程序,然后选择用于管理已连接应用程序的选项
  2. 在“应用访问设置”旁边,单击“编辑”。
  3. 选中“允许用户安装画布个人应用程序”复选框。
  4. 单击“保存”。
选中“允许用户安装画布个人应用程序”复选框

管理员完成这些步骤后,您可以将画布应用程序指定为画布个人应用程序。有关详细信息,请参阅的“将应用程序设为画布个人应用程序”。

使应用程序成为Canvas个人应用程序

您(应用程序的开发人员)可以在您第一次创建应用程序时将其作为画布个人应用程序启用,或者将现有画布应用程序设置为画布个人应用程序。此过程涉及确保组织首选项处于活动状态,并在应用程序的“详细信息”页面上激活设置。

为了让你的应用程序成为一个画布个人应用程序:

  • 应用程序目标组织的管理员必须在该组织中启用画布个人应用程序。为此,请在“设置”中的“快速查找”框中输入“已连接的应用程序”,然后选择用于管理已连接应用程序的选项。
  • 您需要将应用程序作为画布个人应用程序启用,如下所示。
    1. 在“位置”字段中,选择“Chatter”选项卡。如果这是一个画布个人应用程序,Chatter Tab是唯一可以显示画布个人应用程序的位置。
    2. 在Canvas App Settings下,选中Enable as a Canvas Personal App复选框。仅当Chatter选项卡被选为应用程序的位置时,此设置才可用。

在您创建了canvas个人应用程序并提供了指向它的链接后,最终用户可以访问该应用程序并自行安装。

卸载Canvas Personal App

当用户安装并允许画布个人应用程序时,会创建刷新令牌,然后生成OAuth令牌。要阻止最终用户访问应用程序,必须撤消此刷新令牌。此操作有效地卸载了canvas个人应用程序。

以下是如何卸载画布个人应用程序。

  • 组织管理员通过“安装程序”中的“连接的应用程序OAuth使用情况”页面删除组织中一个或所有用户的刷新令牌。
  • 最终用户从其“已连接的应用”列表中撤消画布个人应用。
  • 管理员通过“设置”中的“管理应用程序”页面从组织中明确卸载画布个人应用程序。此操作会从组织中删除该应用。

如果组织管理员在安装画布个人应用程序后禁用组织内的画布个人应用程序,则画布个人应用程序将继续工作。这是因为应用程序的版本号和URL仍然存在,无论如何设置画布个人应用程序的组织首选项。

但是,管理员可以明确卸载该应用程序,将其从组织内部完全删除。