画布开发(3)快速入门高级篇

学习目标

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

  • 先决条件
  • 从GitHub克隆项目
  • 在本地运行Web应用程序
  • 创建Canvas应用程序
  • 配置谁可以访问Canvas应用程序
  • 将Web App部署到Heroku
  • 更新Canvas应用程序
  • 打包Canvas应用程序
  • 上传Canvas App Package
  • 安装Canvas应用程序
  • 配置谁可以访问已安装的Canvas应用程序

这个高级快速入门向您展示了如何开始使用更多Canvas功能。 它将逐步介绍创建,打包,上载,安装和运行画布应用程序的过程。 示例画布应用程序是一个“hello world”Web页面,它调用Canvas SDK以显示当前用户的名称。
在这个例子中,你将:

  • 从GitHub克隆“hello world”应用程序
  • 在本地Web服务器上运行应用程序
  • 将Web应用程序公开为Salesforce开发组织中的画布应用程序,并在Canvas App Previewer中对其进行测试
  • 将Web应用程序部署到Heroku
  • 打包并上传画布应用程序
  • 将canvas应用程序安装在另一个Salesforce组织中,并以用户身份运行它

本快速入门中的步骤假设您使用的是Windows。 您可以使用其他操作系统,但步骤可能会有一些细微差别。

先决条件

您需要适当的访问和工具来完成快速启动步骤。

  • 访问Developer Edition组织以开发canvas应用程序。要安装画布应用程序,您需要一个除用于创建画布应用程序之外的Developer Edition组织。
    如果您还不是Lightning Platform开发人员社区的成员,请访问developer.salesforce.com/signup并按照注册Developer Edition组织的说明进行操作。即使您已经拥有Enterprise Edition,Unlimited Edition或Performance Edition,也可以使用Developer Edition根据示例数据开发,暂存和测试您的解决方案,以保护您组织的实时数据。对于插入,更新或删除数据的应用程序(与简单地读取数据相反)尤其如此。
    如果您有现有的Developer Edition组织,并且从安装程序中看不到菜单项Canvas App Previewer,请联系Salesforce。
  • “自定义应用程序”和“修改所有数据”用户权限。如果您是管理员,则很可能已拥有这些权限。否则,您需要添加它们,以便您可以看到Canvas应用程序预览器并创建画布应用程序。
  • 安装了Git。到这里安装和配置Git:https://help.github.com/articles/set-up-git。
    安装Git后,您可能需要使用keygen工具配置SSH。有关更多信息,请参阅https://help.github.com/articles/generating-ssh-keys。如果您使用的是Windows,则此工具位于Git \ bin目录中,在安装Git后,该目录未添加到路径中。使用“控制面板”将\ bin目录添加到路径中。根据您的安装目录,路径可能类似于C:\ Program Files(x86)\ Git \ bin。
  • 克隆代码示例的GitHub帐户。转到此处设置GitHub帐户:https://github.com/plans。
  • 安装Maven 3.0或更高版本以打包示例应用程序。到这里下载并安装Maven:
    http://maven.apache.org/download.html。
  • 如果您想从Heroku运行应用程序,可以使用Heroku帐户。转到此处创建一个Heroku帐户:
    https://api.heroku.com/signup。
  • Heroku Toolbelt如果要从命令行管理Heroku应用程序。到这里下载并安装Heroku Toolbelt:
    https://toolbelt.heroku.com。

从GitHub克隆项目

“hello world”示例项目是位于GitHub上的Canvas SDK的一部分。在此步骤中,我们将克隆项目以在本地计算机上制作它的副本。

  1. 登录https://github.com。
  2. 通过转到:找到包含Canvas SDK和代码示例的项目:
    https://github.com/forcedotcom/SalesforceCanvasFrameworkSDK。
  3. 单击Zip并下载.zip文件克隆项目。
  4. 将zip文件中的所有文件本地解压缩到名为c:\ SalesforceCanvasFrameworkSDK的目录中。或者,您可以使用Git命令行下载项目并发出以下命令:git clone git@github.com:forcedotcom / SalesforceCanvasFrameworkSDK.git。
  5. 打开命令窗口并导航到c:\ SalesforceCanvasFrameworkSDK。
  6. 输入命令git submodule init。
  7. 输入命令git submodule update。这会将其他项目添加到当前项目中。文件
    c:\ SalesforceCanvasFrameworkSDK \ .gitmodules显示哪些项目作为子模块包含在内。

克隆项目后,c:\ SalesforceCanvasFrameworkSDK目录应包含名为src的子目录,以及pom.xml和README.md等文件。

在本地运行Web应用程序

在此步骤中,您将使用Maven打包Web应用程序,然后使用Jetty在本地运行它。打包Web应用程序时,该过程会下载运行Web应用程序所需的所有组件,包括Jetty。

  1. 打开命令窗口并导航到c:\ SalesforceCanvasFrameworkSDK。
  2. 输入命令mvn package。当Maven打包应用程序及其相关组件时,您将在命令窗口中看到输出。如果该过程成功完成,您将看到如下内容:
    [INFO] ———————————————
    [INFO] BUILD SUCCESS
    [INFO] ———————————————
    [INFO] Total time: 28.016s
    [INFO] Finished at: Tue Jul 03 08:00:42 PDT 2012
    [INFO] Final Memory: 8M/59M
    [INFO] ———————————————
  3. 要使用Jetty运行应用程序,您需要启用本地SSL支持。此步骤只需要为每个应用程序执行一次,因此如果您已经完成此操作,请跳过此步骤。确保命令窗口已打开,并且您位于目录c:\ SalesforceCanvasFrameworkSDK中。
  4. 运行以下命令:keytool -keystore keystore -alias jetty -genkey -keyalg RSA。
    运行此命令后,系统将提示您输入以下信息。输入123456作为密钥库密码,输入是以在最后确认。出现提示时,“输入的密钥密码”,按Enter键以使用密钥库密码。对于其他信息,您可以输入值或将其留空。
    Enter keystore password: 《Choose Your Password》
    Re-enter new password: 《Choose Your Password》
    What is your first and last name?
    [Unknown]: 《Enter First and Last Name》
    What is the name of your organizational unit?
    [Unknown]: 《Enter an Org Unit》
    What is the name of your organization?
    [Unknown]: 《Enter an Org》
    What is the name of your City or Locality?
    [Unknown]: 《Enter a City》
    What is the name of your State or Province?
    [Unknown]: 《Enter a State》
    What is the two-letter country code for this unit?
    [Unknown]: 《Enter a Country》
    Is CN=XXXX, OU=XXXX, O=XXXX, L=XXXX, ST=XX, C=XX correct?
    [no]: yes
    Enter key password for 《jetty》
    (RETURN if same as keystore password):
    这将在目录c:\ SalesforceCanvasFrameworkSDK中创建名为keystore的文件。 Jetty使用密钥库来支持SSL。
  5. 输入以下命令运行Web服务器:target \ bin \ webapp.bat(Windows)或sh target / bin / webapp
    (Unix / OS X)。
    如果您使用的是Unix / OS X,则可能需要先向webapp添加执行权限,然后才能运行它。使用此命令执行此操作:chmod + x target / bin / webapp。
  6. 通过打开浏览器并导航到以下URL来验证应用程序是否正在运行:
    https://开头本地主机:8443 /例子/您好世界/ index.jsp的。
    根据您的浏览器和安全设置,您可能需要添加安全例外,因为您正在运行具有未签名SSL证书的站点。
    您应该看到一条消息,上面写着“必须通过已签名的请求调用此应用程序!”这表明Web应用程序在本地运行。出现此消息是因为该应用程序旨在从Salesforce接收已签名的请求,因此,该应用程序不会在Salesforce画布环境之外运行。

创建Canvas应用程序

在此步骤中,您将在Salesforce组织中创建画布应用程序。您将需要用户权限“自定义应用程序”和“修改所有数据”来创建画布应用程序。

  1. 在Salesforce中,从“设置”中,在“快速查找”框中输入“应用”,然后选择“应用”。
  2. 在Connected Apps相关列表中,单击New。
  3. 在Connected App Name字段中,输入Hello World。
  4. 接受Hello_World的默认API名称。这是画布应用程序的内部名称,保存后无法更改。
  5. 在联系电子邮件字段中,输入您的电子邮件地址。
  6. 在徽标图像URL字段中,输入https:// localhost:8443 / images / salesforce.png。这是默认的Salesforce“无软件”映像。此图像显示在安装屏幕和应用程序的详细信息屏幕上。
  7. 在Icon URL字段中,输入https:// localhost:8443 / examples / hello-world / logo.png。这是默认的Salesforce“无软件”映像。
    这是用户界面中应用名称旁边显示的图像。如果将此字段留空,则应用程序名称旁会显示默认云图像。
  8. 在API(启用OAuth设置)部分中,选择“启用OAuth设置”字段。
  9. 在Callback URL字段中,输入https:// localhost:8443 / sdk / callback.html。
  10. 在“选定的OAuth范围”字段中,选择“访问基本信息”。
  11. 在Canvas App Settings部分中,选择Canvas。
  12. 在Canvas App URL字段中,输入https:// localhost:8443 / examples / hello-world / index.jsp。
  13. 在“访问方法”字段中,选择“签名请求(发布)”。
  14. 在“位置”字段中,选择“Chatter”选项卡。
  15. 单击“保存”。保存画布应用程序后,将显示详细信息页面。
  16. 在画布应用程序的详细信息页面上,在“使用者密钥”字段旁边,单击“单击以显示”链接。在应用程序中使用消费者密钥进行身份验证。
  17. 选择使用者密钥值,然后输入CTRL + C进行复制。
  18. 进入命令窗口,输入CTRL + C停止Jetty Web服务器。在提示符下,输入Y.
  19. 创建一个名为CANVAS_CONSUMER_SECRET的环境变量,并将该值设置为刚复制的使用者密钥。要在Windows中执行此操作,请在命令窗口中输入set CANVAS_CONSUMER_SECRET = value_you_just_copied
    如果您使用的是Unix / OS X,请使用命令export CANVAS_CONSUMER_SECRET = value_you_just_copied设置环境变量。
    “你好世界”页面
    (c:\ SalesforceCanvasFrameworkSDK \ src \ main \ webapp \ examples \ hello-world \ index.jsp)使用使用者密钥,
  20. 输入以下命令重新启动Web服务器:target \ bin \ webapp.bat(Windows)或sh target / bin / webapp
    (Unix / OS X)。

如以下代码所示:

<%@ page import=”canvas.SignedRequest” %>
<%@ page import=”java.util.Map” %>
<%
// Pull the signed request out of the request body and verify and decode it. Map<String, String[]> parameters = request.getParameterMap();
String[] signedRequest = parameters.get(“signed_request”); if (signedRequest == null) {%>
This app must be invoked via a signed request!<% return;
}
String yourConsumerSecret=System.getenv(“CANVAS_CONSUMER_SECRET”);
String signedRequestJson = SignedRequest.verifyAndDecodeAsJson(signedRequest[0], yourConsumerSecret);
%>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml” lang=”en”>
<head>
<title>Hello World Canvas Example</title>
<link rel=”stylesheet” type=”text/css” href=”/sdk/css/connect.css” />
<script type=”text/javascript” src=”/sdk/js/canvas-all.js”></script>
<!– Third part libraries, substitute with your own –>
<script type=”text/javascript” src=”/scripts/json2.js”></script>
<script>
if (self === top) {
// Not in an iFrame.
alert(“This canvas app must be included within an iFrame”);
}
Sfdc.canvas(function() {
var sr = JSON.parse(‘<%=signedRequestJson%>’); Sfdc.canvas.byId(‘username’).innerHTML = sr.context.user.fullName;
});
</script>
</head>
<body>
<br/>
<h1>Hello <span id=’username’></span></h1>
</body>
</html>

配置谁可以访问Canvas应用程序

您已在Salesforce中创建了画布应用程序,现在让我们为特定用户配置访问权限。

  1. 在Salesforce中,从“设置”中,在“快速查找”框中输入“已连接的应用程序”,然后选择用于管理已连接应用程序的选项。
  2. 单击Hello World应用程序,然后单击编辑。
  3. 在“允许的用户”字段中,选择“管理员批准的用户已预先授权”。在出现的弹出消息上单击“确定”。我们选择了“管理员批准的用户已预先授权”,因此在我们授予他们权限之前,用户不会看到画布应用。如果我们选择“所有用户可以自我授权”,则用户会看到画布应用,但需要批准或拒绝访问它。
  4. 单击“保存”。
    您可以在此处定义谁可以查看您的画布应用程序。这可以使用配置文件和权限集来完成。在此示例中,我们假设您的配置文件是系统管理员。
  5. 在“配置文件”相关列表中,单击“管理配置文件”。
  6. 选择System Administrator配置文件,然后单击Save。
  7. 在Salesforce中,从“设置”中,在“快速查找”框中输入Canvas App Previewer,然后选择“Canvas App Previewer”。您可以使用Canvas应用程序预览器在发布之前测试您的画布应用程序。
  8. 单击左侧的Hello World链接。
    该应用程序出现,您将看到消息Hello User.FullName。画布应用程序在此上下文中工作,因为当您在预览器中单击应用程序名称时,已签名的请求将发送到端点https:// localhost:8443 / examples / hello-world / index.jsp。

配置访问权限后,您可以在Canvas App Previewer和开发组织的Chatter选项卡上查看canvas应用程序。

将Web App部署到Heroku

在本演练中,您之前在本地运行了“hello world”Web应用程序,然后将其添加为画布应用程序并对其进行测试。现在您的画布应用程序在本地运行,您已准备好将“hello world”Web应用程序部署到Heroku并从那里运行它。这是你如何做到的。

  1. 如果您还没有,请登录Heroku并按照先决条件中的链接安装Heroku Toolbelt。
  2. 打开命令窗口,导航到c:\ SalesforceCanvasFrameworkSDK,然后输入以下命令:git init。这会将目录重新初始化为Git存储库。
  3. 在命令窗口中,输入以下命令:heroku create。这在Heroku上创建了一个新的“shell”应用程序。确认应用程序已创建如下:
    Creating deep-samurai-7923… done, stack is cedar
    http://deep-samurai-7923.herokuapp.com/ | git@heroku.com:deep-samurai-7923.git
    Git remote heroku added
  4. 要重命名此Heroku应用程序,请在命令窗口中输入以下命令:heroku rename newAppName –app
    oldAppName。
    在此示例中,oldAppName是deep-samurai-7923。您创建的newAppName必须以字母开头,并且只能包含小写字母,数字和短划线。您将看到重命名的确认,看起来与此类似:
    http://newappName.herokuapp.com/ | git@heroku.com:newappName.git
    所有Heroku应用程序中的newappName必须是唯一的。此名称将成为应用程序URL的一部分,例如,
    newappName.herokuapp.com。
  5. 在命令窗口中运行以下命令:git add -A。这会将整个SalesforceCanvasFrameworkSDK项目添加到Git存储库。如果您在Windows环境中工作,您可能会看到有关LF(换行符)的一些消息被CRLF(回车换行符)替换。
  6. 在命令窗口中输入以下命令以提交更改以及注释:git commit -m“MyChangeComments”。
  7. 在命令窗口中输入以下命令,将更改部署到Heroku:git push heroku master。如果该过程成功完成,您将看到如下内容:
    [INFO] ——————————————
    [INFO] BUILD SUCCESS
    [INFO] ——————————————
    [INFO] Total time: 13.188s
    [INFO] Finished at: Sat Feb 09 21:14:23 UTC 2013
    [INFO] Final Memory: 11M/490M
    [INFO] ——————————————
    如果收到“权限被拒绝”错误消息,则可能需要设置SSH密钥并将其添加到Heroku。看到
    https://devcenter.heroku.com/articles/keys。
  8. 打开命令窗口,并通过输入此命令并将consumer_secret_value替换为刚刚复制的值来设置包含使用者密钥的Heroku环境变量:heroku config:add CANVAS_CONSUMER_SECRET = consumer_secret_value。
    要获取画布应用程序的消费者机密,请在“设置”中的“快速查找”框中输入应用程序,然后选择“应用程序”并单击“Hello World”应用程序。您将在OAuth设置部分中看到“使用者密钥”字段。
  9. 通过打开浏览器并导航到以下URL,验证应用程序是否在Heroku中运行:
    https://newappName.herokuapp.com/examples/hello-world/index.jsp。
    您应该看到一条消息,上面写着“必须通过已签名的请求调用此应用程序!”这表明该应用程序正在Heroku中运行。出现此消息是因为该应用程序旨在从Salesforce画布环境接收签名请求。

更新Canvas应用程序

在此步骤中,您将更新画布应用程序以运行现在在Heroku上运行的“hello world”应用程序。

  1. 在Salesforce中,从“设置”中,在“快速查找”框中输入“应用”,然后选择“应用”。
  2. 在Connected Apps相关列表中,单击Hello World。
  3. 单击“编辑”。
  4. 在徽标图像URL字段中,输入https://appName.herokuapp.com/images/salesforce.png。这是默认的Salesforce“无软件”映像。此图像显示在安装屏幕和应用程序的详细信息屏幕上。 appName是您刚刚创建的Heroku应用程序的名称。
  5. 在图标URL字段中,输入https://appName.herokuapp.com/examples/hello-world/logo.png。这是默认的Salesforce“无软件”映像。
    这是Chatter选项卡或Canvas App Previewer中应用程序名称旁边显示的图像。如果将此字段留空,则应用程序名称旁会显示默认云图像。 appName是您刚刚创建的Heroku应用程序的名称。
  6. 在“回拨URL”字段中,输入https://appName.herokuapp.com/sdk/callback.html。 appName是您刚刚创建的Heroku应用程序的名称。
  7. 在Canvas App URL字段中,输入https://appName.herokuapp.com/examples/hello-world/index.jsp。 appName是您刚刚创建的Heroku应用程序的名称。
  8. 单击“保存”。保存画布应用程序后,将显示详细信息页面。
  9. 在Salesforce中,从“设置”中,在“快速查找”框中输入Canvas App Previewer,然后选择“Canvas App Previewer”。您可以使用Canvas应用程序预览器在重新打包之前测试您的画布应用程序。
  10. 单击左侧的Hello World链接。
    该应用程序应该出现,您将看到消息Hello User.FullName。画布应用程序在此上下文中工作,因为当您在预览器中单击应用程序名称时,已签名的请求将发送到端点https://appName.herokuapp.com/examples/hello-world/index.jsp。

在这个例子中,我们使用的是我们刚创建的相同画布应用程序,但更新它指向在Heroku上运行的“hello world”Web应用程序。因此,我们之前添加到“hello world”应用程序中的消费者秘密不需要更新。
如果要在Salesforce中创建一个新的画布应用程序,该应用程序显示在Heroku上运行的“hello world”应用程序,请转到创建画布应用程序以创建新应用程序,更新应用程序中的使用者密钥,然后将更改部署到Heroku的。

打包Canvas应用程序

现在您已经创建了画布应用程序,在Canvas应用程序预览器中对其进行了测试,并将其部署到Heroku,您已准备好打包并分发它。打包是使您的画布应用程序可以在其他组织中安装的第一步。有关打包的更多信息,请参阅ISVforce指南。

  1. 在Salesforce中,从“设置”中,在“快速查找”框中输入“包”,然后选择“包”并单击“新建”。
    提示:要将画布应用程序打包以在其他组织中安装,您必须创建名称空间前缀。名称空间前缀只能在Developer Edition组织中定义。有关详细信息,请参阅联机帮助中的“注册命名空间前缀”主题。
  2. 将Package Name字段设置为Hello World Package,并接受其他字段的默认值。
  3. 选择“托管”字段以使程序包成为组织的托管程序包。
  4. 出现一个提示,说明您只允许一个托管包。单击确定。
  5. 单击“保存”。
  6. 包是空的,因此单击“添加”。
  7. 在Component Type字段中,选择Connected App。
  8. 选中Hello World应用程序旁边的复选框,然后单击“添加到包”。出现包详细信息屏幕。从“设置”中,在“快速查找”框中输入“Package”,然后选择“Package”以查看新的托管包。

上传Canvas应用程序包

现在您已经打包了画布应用程序,您已准备好上传该软件包。这将创建一个安装链接,您可以向需要在其组织中安装画布应用程序的任何人提供该链接。

1.在Salesforce中,从“设置”中,在“快速查找”框中输入“Packages”,然后选择“Packages”。
2.在Packages列表中,单击Hello World Package链接。
3.在“Package Detail”页面上,单击“Upload ”以发布托管包。
4.在版本名称字段中,输入Winter 2014 Beta。保留默认版本号1.0和Managed-Beta的发布类型。
5.单击“Upload”。
注意:画布应用程序只能安装在您正在开发的组织之外的组织中。

安装Canvas应用程序

上载打包的画布应用程序会创建安装链接。然后,您可以使用此链接在其他组织中安装画布应用程序。 Beta软件包只能安装在沙盒或Developer Edition组织中,否则,您将收到错误消息。

  1. 打开浏览器并在浏览器地址栏中输入画布应用程序安装URL。如果您正在开发canvas应用程序,请确保在安装应用程序之前注销开发组织。
    安装URL类似于:
    https://login.instance.salesforce.com/services/packaging/installPackage.apexp?p0=04eU0000000AWNA。
  2. 出现提示时,输入您要在其中安装软件包的组织的登录凭据。
  3. 将显示“包安装详细信息”页面。在Package Components列表中,您应该看到Hello World画布应用程序。单击Continue。
  4. 单击Next ,然后单击Install

配置谁可以访问已安装的Canvas应用程序

您已在Salesforce组织中安装了画布应用程序,但在配置用户访问权限之前,没有人可以看到它。

  1. 在Salesforce中,从“设置”中,在“快速查找”框中输入“Connected Apps ”,然后选择用于管理已连接应用程序的选项。
  2. 单击Hello World应用程序,然后单击“Edit”。
  3. 在“允许的用户”字段中,选择“管理员批准的用户”已预先授权。在出现的弹出消息上单击“OK”。
  4. 单击“Save”。
    现在,您将定义谁可以看到您的画布应用程序。这可以使用配置文件和权限集来完成。在此示例中,我们将允许任何拥有系统管理员的人访问该应用程序。
  5. 在“已连接的应用程序详细信息”页面的“配置文件相关”列表中,单击“ Manage Profiles.”。
  6. 选择System Administrator配置文件,然后单击Save。
  7. 单击Chatter选项卡。
  8. 单击左侧的Hello World链接。
    该应用程序出现,您将看到消息Hello User.FullName。

画布开发(3)快速入门高级篇

学习目标

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

  • 先决条件
  • 从GitHub克隆项目
  • 在本地运行Web应用程序
  • 创建Canvas应用程序
  • 配置谁可以访问Canvas应用程序
  • 将Web App部署到Heroku
  • 更新Canvas应用程序
  • 打包Canvas应用程序
  • 上传Canvas App Package
  • 安装Canvas应用程序
  • 配置谁可以访问已安装的Canvas应用程序

这个高级快速入门向您展示了如何开始使用更多Canvas功能。 它将逐步介绍创建,打包,上载,安装和运行画布应用程序的过程。 示例画布应用程序是一个“hello world”Web页面,它调用Canvas SDK以显示当前用户的名称。
在这个例子中,你将:

  • 从GitHub克隆“hello world”应用程序
  • 在本地Web服务器上运行应用程序
  • 将Web应用程序公开为Salesforce开发组织中的画布应用程序,并在Canvas App Previewer中对其进行测试
  • 将Web应用程序部署到Heroku
  • 打包并上传画布应用程序
  • 将canvas应用程序安装在另一个Salesforce组织中,并以用户身份运行它

本快速入门中的步骤假设您使用的是Windows。 您可以使用其他操作系统,但步骤可能会有一些细微差别。

先决条件

您需要适当的访问和工具来完成快速启动步骤。

  • 访问Developer Edition组织以开发canvas应用程序。要安装画布应用程序,您需要一个除用于创建画布应用程序之外的Developer Edition组织。
    如果您还不是Lightning Platform开发人员社区的成员,请访问developer.salesforce.com/signup并按照注册Developer Edition组织的说明进行操作。即使您已经拥有Enterprise Edition,Unlimited Edition或Performance Edition,也可以使用Developer Edition根据示例数据开发,暂存和测试您的解决方案,以保护您组织的实时数据。对于插入,更新或删除数据的应用程序(与简单地读取数据相反)尤其如此。
    如果您有现有的Developer Edition组织,并且从安装程序中看不到菜单项Canvas App Previewer,请联系Salesforce。
  • “自定义应用程序”和“修改所有数据”用户权限。如果您是管理员,则很可能已拥有这些权限。否则,您需要添加它们,以便您可以看到Canvas应用程序预览器并创建画布应用程序。
  • 安装了Git。到这里安装和配置Git:https://help.github.com/articles/set-up-git。
    安装Git后,您可能需要使用keygen工具配置SSH。有关更多信息,请参阅https://help.github.com/articles/generating-ssh-keys。如果您使用的是Windows,则此工具位于Git \ bin目录中,在安装Git后,该目录未添加到路径中。使用“控制面板”将\ bin目录添加到路径中。根据您的安装目录,路径可能类似于C:\ Program Files(x86)\ Git \ bin。
  • 克隆代码示例的GitHub帐户。转到此处设置GitHub帐户:https://github.com/plans。
  • 安装Maven 3.0或更高版本以打包示例应用程序。到这里下载并安装Maven:
    http://maven.apache.org/download.html。
  • 如果您想从Heroku运行应用程序,可以使用Heroku帐户。转到此处创建一个Heroku帐户:
    https://api.heroku.com/signup。
  • Heroku Toolbelt如果要从命令行管理Heroku应用程序。到这里下载并安装Heroku Toolbelt:
    https://toolbelt.heroku.com。

从GitHub克隆项目

“hello world”示例项目是位于GitHub上的Canvas SDK的一部分。在此步骤中,我们将克隆项目以在本地计算机上制作它的副本。

  1. 登录https://github.com。
  2. 通过转到:找到包含Canvas SDK和代码示例的项目:
    https://github.com/forcedotcom/SalesforceCanvasFrameworkSDK。
  3. 单击Zip并下载.zip文件克隆项目。
  4. 将zip文件中的所有文件本地解压缩到名为c:\ SalesforceCanvasFrameworkSDK的目录中。或者,您可以使用Git命令行下载项目并发出以下命令:git clone git@github.com:forcedotcom / SalesforceCanvasFrameworkSDK.git。
  5. 打开命令窗口并导航到c:\ SalesforceCanvasFrameworkSDK。
  6. 输入命令git submodule init。
  7. 输入命令git submodule update。这会将其他项目添加到当前项目中。文件
    c:\ SalesforceCanvasFrameworkSDK \ .gitmodules显示哪些项目作为子模块包含在内。

克隆项目后,c:\ SalesforceCanvasFrameworkSDK目录应包含名为src的子目录,以及pom.xml和README.md等文件。

在本地运行Web应用程序

在此步骤中,您将使用Maven打包Web应用程序,然后使用Jetty在本地运行它。打包Web应用程序时,该过程会下载运行Web应用程序所需的所有组件,包括Jetty。

  1. 打开命令窗口并导航到c:\ SalesforceCanvasFrameworkSDK。
  2. 输入命令mvn package。当Maven打包应用程序及其相关组件时,您将在命令窗口中看到输出。如果该过程成功完成,您将看到如下内容:
    [INFO] ———————————————
    [INFO] BUILD SUCCESS
    [INFO] ———————————————
    [INFO] Total time: 28.016s
    [INFO] Finished at: Tue Jul 03 08:00:42 PDT 2012
    [INFO] Final Memory: 8M/59M
    [INFO] ———————————————
  3. 要使用Jetty运行应用程序,您需要启用本地SSL支持。此步骤只需要为每个应用程序执行一次,因此如果您已经完成此操作,请跳过此步骤。确保命令窗口已打开,并且您位于目录c:\ SalesforceCanvasFrameworkSDK中。
  4. 运行以下命令:keytool -keystore keystore -alias jetty -genkey -keyalg RSA。
    运行此命令后,系统将提示您输入以下信息。输入123456作为密钥库密码,输入是以在最后确认。出现提示时,“输入的密钥密码”,按Enter键以使用密钥库密码。对于其他信息,您可以输入值或将其留空。
    Enter keystore password: 《Choose Your Password》
    Re-enter new password: 《Choose Your Password》
    What is your first and last name?
    [Unknown]: 《Enter First and Last Name》
    What is the name of your organizational unit?
    [Unknown]: 《Enter an Org Unit》
    What is the name of your organization?
    [Unknown]: 《Enter an Org》
    What is the name of your City or Locality?
    [Unknown]: 《Enter a City》
    What is the name of your State or Province?
    [Unknown]: 《Enter a State》
    What is the two-letter country code for this unit?
    [Unknown]: 《Enter a Country》
    Is CN=XXXX, OU=XXXX, O=XXXX, L=XXXX, ST=XX, C=XX correct?
    [no]: yes
    Enter key password for 《jetty》
    (RETURN if same as keystore password):
    这将在目录c:\ SalesforceCanvasFrameworkSDK中创建名为keystore的文件。 Jetty使用密钥库来支持SSL。
  5. 输入以下命令运行Web服务器:target \ bin \ webapp.bat(Windows)或sh target / bin / webapp
    (Unix / OS X)。
    如果您使用的是Unix / OS X,则可能需要先向webapp添加执行权限,然后才能运行它。使用此命令执行此操作:chmod + x target / bin / webapp。
  6. 通过打开浏览器并导航到以下URL来验证应用程序是否正在运行:
    https://开头本地主机:8443 /例子/您好世界/ index.jsp的。
    根据您的浏览器和安全设置,您可能需要添加安全例外,因为您正在运行具有未签名SSL证书的站点。
    您应该看到一条消息,上面写着“必须通过已签名的请求调用此应用程序!”这表明Web应用程序在本地运行。出现此消息是因为该应用程序旨在从Salesforce接收已签名的请求,因此,该应用程序不会在Salesforce画布环境之外运行。

创建Canvas应用程序

在此步骤中,您将在Salesforce组织中创建画布应用程序。您将需要用户权限“自定义应用程序”和“修改所有数据”来创建画布应用程序。

  1. 在Salesforce中,从“设置”中,在“快速查找”框中输入“应用”,然后选择“应用”。
  2. 在Connected Apps相关列表中,单击New。
  3. 在Connected App Name字段中,输入Hello World。
  4. 接受Hello_World的默认API名称。这是画布应用程序的内部名称,保存后无法更改。
  5. 在联系电子邮件字段中,输入您的电子邮件地址。
  6. 在徽标图像URL字段中,输入https:// localhost:8443 / images / salesforce.png。这是默认的Salesforce“无软件”映像。此图像显示在安装屏幕和应用程序的详细信息屏幕上。
  7. 在Icon URL字段中,输入https:// localhost:8443 / examples / hello-world / logo.png。这是默认的Salesforce“无软件”映像。
    这是用户界面中应用名称旁边显示的图像。如果将此字段留空,则应用程序名称旁会显示默认云图像。
  8. 在API(启用OAuth设置)部分中,选择“启用OAuth设置”字段。
  9. 在Callback URL字段中,输入https:// localhost:8443 / sdk / callback.html。
  10. 在“选定的OAuth范围”字段中,选择“访问基本信息”。
  11. 在Canvas App Settings部分中,选择Canvas。
  12. 在Canvas App URL字段中,输入https:// localhost:8443 / examples / hello-world / index.jsp。
  13. 在“访问方法”字段中,选择“签名请求(发布)”。
  14. 在“位置”字段中,选择“Chatter”选项卡。
  15. 单击“保存”。保存画布应用程序后,将显示详细信息页面。
  16. 在画布应用程序的详细信息页面上,在“使用者密钥”字段旁边,单击“单击以显示”链接。在应用程序中使用消费者密钥进行身份验证。
  17. 选择使用者密钥值,然后输入CTRL + C进行复制。
  18. 进入命令窗口,输入CTRL + C停止Jetty Web服务器。在提示符下,输入Y.
  19. 创建一个名为CANVAS_CONSUMER_SECRET的环境变量,并将该值设置为刚复制的使用者密钥。要在Windows中执行此操作,请在命令窗口中输入set CANVAS_CONSUMER_SECRET = value_you_just_copied
    如果您使用的是Unix / OS X,请使用命令export CANVAS_CONSUMER_SECRET = value_you_just_copied设置环境变量。
    “你好世界”页面
    (c:\ SalesforceCanvasFrameworkSDK \ src \ main \ webapp \ examples \ hello-world \ index.jsp)使用使用者密钥,
  20. 输入以下命令重新启动Web服务器:target \ bin \ webapp.bat(Windows)或sh target / bin / webapp
    (Unix / OS X)。

如以下代码所示:

<%@ page import=”canvas.SignedRequest” %>
<%@ page import=”java.util.Map” %>
<%
// Pull the signed request out of the request body and verify and decode it. Map<String, String[]> parameters = request.getParameterMap();
String[] signedRequest = parameters.get(“signed_request”); if (signedRequest == null) {%>
This app must be invoked via a signed request!<% return;
}
String yourConsumerSecret=System.getenv(“CANVAS_CONSUMER_SECRET”);
String signedRequestJson = SignedRequest.verifyAndDecodeAsJson(signedRequest[0], yourConsumerSecret);
%>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml” lang=”en”>
<head>
<title>Hello World Canvas Example</title>
<link rel=”stylesheet” type=”text/css” href=”/sdk/css/connect.css” />
<script type=”text/javascript” src=”/sdk/js/canvas-all.js”></script>
<!– Third part libraries, substitute with your own –>
<script type=”text/javascript” src=”/scripts/json2.js”></script>
<script>
if (self === top) {
// Not in an iFrame.
alert(“This canvas app must be included within an iFrame”);
}
Sfdc.canvas(function() {
var sr = JSON.parse(‘<%=signedRequestJson%>’); Sfdc.canvas.byId(‘username’).innerHTML = sr.context.user.fullName;
});
</script>
</head>
<body>
<br/>
<h1>Hello <span id=’username’></span></h1>
</body>
</html>

配置谁可以访问Canvas应用程序

您已在Salesforce中创建了画布应用程序,现在让我们为特定用户配置访问权限。

  1. 在Salesforce中,从“设置”中,在“快速查找”框中输入“已连接的应用程序”,然后选择用于管理已连接应用程序的选项。
  2. 单击Hello World应用程序,然后单击编辑。
  3. 在“允许的用户”字段中,选择“管理员批准的用户已预先授权”。在出现的弹出消息上单击“确定”。我们选择了“管理员批准的用户已预先授权”,因此在我们授予他们权限之前,用户不会看到画布应用。如果我们选择“所有用户可以自我授权”,则用户会看到画布应用,但需要批准或拒绝访问它。
  4. 单击“保存”。
    您可以在此处定义谁可以查看您的画布应用程序。这可以使用配置文件和权限集来完成。在此示例中,我们假设您的配置文件是系统管理员。
  5. 在“配置文件”相关列表中,单击“管理配置文件”。
  6. 选择System Administrator配置文件,然后单击Save。
  7. 在Salesforce中,从“设置”中,在“快速查找”框中输入Canvas App Previewer,然后选择“Canvas App Previewer”。您可以使用Canvas应用程序预览器在发布之前测试您的画布应用程序。
  8. 单击左侧的Hello World链接。
    该应用程序出现,您将看到消息Hello User.FullName。画布应用程序在此上下文中工作,因为当您在预览器中单击应用程序名称时,已签名的请求将发送到端点https:// localhost:8443 / examples / hello-world / index.jsp。

配置访问权限后,您可以在Canvas App Previewer和开发组织的Chatter选项卡上查看canvas应用程序。

将Web App部署到Heroku

在本演练中,您之前在本地运行了“hello world”Web应用程序,然后将其添加为画布应用程序并对其进行测试。现在您的画布应用程序在本地运行,您已准备好将“hello world”Web应用程序部署到Heroku并从那里运行它。这是你如何做到的。

  1. 如果您还没有,请登录Heroku并按照先决条件中的链接安装Heroku Toolbelt。
  2. 打开命令窗口,导航到c:\ SalesforceCanvasFrameworkSDK,然后输入以下命令:git init。这会将目录重新初始化为Git存储库。
  3. 在命令窗口中,输入以下命令:heroku create。这在Heroku上创建了一个新的“shell”应用程序。确认应用程序已创建如下:
    Creating deep-samurai-7923… done, stack is cedar
    http://deep-samurai-7923.herokuapp.com/ | git@heroku.com:deep-samurai-7923.git
    Git remote heroku added
  4. 要重命名此Heroku应用程序,请在命令窗口中输入以下命令:heroku rename newAppName –app
    oldAppName。
    在此示例中,oldAppName是deep-samurai-7923。您创建的newAppName必须以字母开头,并且只能包含小写字母,数字和短划线。您将看到重命名的确认,看起来与此类似:
    http://newappName.herokuapp.com/ | git@heroku.com:newappName.git
    所有Heroku应用程序中的newappName必须是唯一的。此名称将成为应用程序URL的一部分,例如,
    newappName.herokuapp.com。
  5. 在命令窗口中运行以下命令:git add -A。这会将整个SalesforceCanvasFrameworkSDK项目添加到Git存储库。如果您在Windows环境中工作,您可能会看到有关LF(换行符)的一些消息被CRLF(回车换行符)替换。
  6. 在命令窗口中输入以下命令以提交更改以及注释:git commit -m“MyChangeComments”。
  7. 在命令窗口中输入以下命令,将更改部署到Heroku:git push heroku master。如果该过程成功完成,您将看到如下内容:
    [INFO] ——————————————
    [INFO] BUILD SUCCESS
    [INFO] ——————————————
    [INFO] Total time: 13.188s
    [INFO] Finished at: Sat Feb 09 21:14:23 UTC 2013
    [INFO] Final Memory: 11M/490M
    [INFO] ——————————————
    如果收到“权限被拒绝”错误消息,则可能需要设置SSH密钥并将其添加到Heroku。看到
    https://devcenter.heroku.com/articles/keys。
  8. 打开命令窗口,并通过输入此命令并将consumer_secret_value替换为刚刚复制的值来设置包含使用者密钥的Heroku环境变量:heroku config:add CANVAS_CONSUMER_SECRET = consumer_secret_value。
    要获取画布应用程序的消费者机密,请在“设置”中的“快速查找”框中输入应用程序,然后选择“应用程序”并单击“Hello World”应用程序。您将在OAuth设置部分中看到“使用者密钥”字段。
  9. 通过打开浏览器并导航到以下URL,验证应用程序是否在Heroku中运行:
    https://newappName.herokuapp.com/examples/hello-world/index.jsp。
    您应该看到一条消息,上面写着“必须通过已签名的请求调用此应用程序!”这表明该应用程序正在Heroku中运行。出现此消息是因为该应用程序旨在从Salesforce画布环境接收签名请求。

更新Canvas应用程序

在此步骤中,您将更新画布应用程序以运行现在在Heroku上运行的“hello world”应用程序。

  1. 在Salesforce中,从“设置”中,在“快速查找”框中输入“应用”,然后选择“应用”。
  2. 在Connected Apps相关列表中,单击Hello World。
  3. 单击“编辑”。
  4. 在徽标图像URL字段中,输入https://appName.herokuapp.com/images/salesforce.png。这是默认的Salesforce“无软件”映像。此图像显示在安装屏幕和应用程序的详细信息屏幕上。 appName是您刚刚创建的Heroku应用程序的名称。
  5. 在图标URL字段中,输入https://appName.herokuapp.com/examples/hello-world/logo.png。这是默认的Salesforce“无软件”映像。
    这是Chatter选项卡或Canvas App Previewer中应用程序名称旁边显示的图像。如果将此字段留空,则应用程序名称旁会显示默认云图像。 appName是您刚刚创建的Heroku应用程序的名称。
  6. 在“回拨URL”字段中,输入https://appName.herokuapp.com/sdk/callback.html。 appName是您刚刚创建的Heroku应用程序的名称。
  7. 在Canvas App URL字段中,输入https://appName.herokuapp.com/examples/hello-world/index.jsp。 appName是您刚刚创建的Heroku应用程序的名称。
  8. 单击“保存”。保存画布应用程序后,将显示详细信息页面。
  9. 在Salesforce中,从“设置”中,在“快速查找”框中输入Canvas App Previewer,然后选择“Canvas App Previewer”。您可以使用Canvas应用程序预览器在重新打包之前测试您的画布应用程序。
  10. 单击左侧的Hello World链接。
    该应用程序应该出现,您将看到消息Hello User.FullName。画布应用程序在此上下文中工作,因为当您在预览器中单击应用程序名称时,已签名的请求将发送到端点https://appName.herokuapp.com/examples/hello-world/index.jsp。

在这个例子中,我们使用的是我们刚创建的相同画布应用程序,但更新它指向在Heroku上运行的“hello world”Web应用程序。因此,我们之前添加到“hello world”应用程序中的消费者秘密不需要更新。
如果要在Salesforce中创建一个新的画布应用程序,该应用程序显示在Heroku上运行的“hello world”应用程序,请转到创建画布应用程序以创建新应用程序,更新应用程序中的使用者密钥,然后将更改部署到Heroku的。

打包Canvas应用程序

现在您已经创建了画布应用程序,在Canvas应用程序预览器中对其进行了测试,并将其部署到Heroku,您已准备好打包并分发它。打包是使您的画布应用程序可以在其他组织中安装的第一步。有关打包的更多信息,请参阅ISVforce指南。

  1. 在Salesforce中,从“设置”中,在“快速查找”框中输入“包”,然后选择“包”并单击“新建”。
    提示:要将画布应用程序打包以在其他组织中安装,您必须创建名称空间前缀。名称空间前缀只能在Developer Edition组织中定义。有关详细信息,请参阅联机帮助中的“注册命名空间前缀”主题。
  2. 将Package Name字段设置为Hello World Package,并接受其他字段的默认值。
  3. 选择“托管”字段以使程序包成为组织的托管程序包。
  4. 出现一个提示,说明您只允许一个托管包。单击确定。
  5. 单击“保存”。
  6. 包是空的,因此单击“添加”。
  7. 在Component Type字段中,选择Connected App。
  8. 选中Hello World应用程序旁边的复选框,然后单击“添加到包”。出现包详细信息屏幕。从“设置”中,在“快速查找”框中输入“Package”,然后选择“Package”以查看新的托管包。

上传Canvas应用程序包

现在您已经打包了画布应用程序,您已准备好上传该软件包。这将创建一个安装链接,您可以向需要在其组织中安装画布应用程序的任何人提供该链接。

1.在Salesforce中,从“设置”中,在“快速查找”框中输入“Packages”,然后选择“Packages”。
2.在Packages列表中,单击Hello World Package链接。
3.在“Package Detail”页面上,单击“Upload ”以发布托管包。
4.在版本名称字段中,输入Winter 2014 Beta。保留默认版本号1.0和Managed-Beta的发布类型。
5.单击“Upload”。
注意:画布应用程序只能安装在您正在开发的组织之外的组织中。

安装Canvas应用程序

上载打包的画布应用程序会创建安装链接。然后,您可以使用此链接在其他组织中安装画布应用程序。 Beta软件包只能安装在沙盒或Developer Edition组织中,否则,您将收到错误消息。

  1. 打开浏览器并在浏览器地址栏中输入画布应用程序安装URL。如果您正在开发canvas应用程序,请确保在安装应用程序之前注销开发组织。
    安装URL类似于:
    https://login.instance.salesforce.com/services/packaging/installPackage.apexp?p0=04eU0000000AWNA。
  2. 出现提示时,输入您要在其中安装软件包的组织的登录凭据。
  3. 将显示“包安装详细信息”页面。在Package Components列表中,您应该看到Hello World画布应用程序。单击Continue。
  4. 单击Next ,然后单击Install

配置谁可以访问已安装的Canvas应用程序

您已在Salesforce组织中安装了画布应用程序,但在配置用户访问权限之前,没有人可以看到它。

  1. 在Salesforce中,从“设置”中,在“快速查找”框中输入“Connected Apps ”,然后选择用于管理已连接应用程序的选项。
  2. 单击Hello World应用程序,然后单击“Edit”。
  3. 在“允许的用户”字段中,选择“管理员批准的用户”已预先授权。在出现的弹出消息上单击“OK”。
  4. 单击“Save”。
    现在,您将定义谁可以看到您的画布应用程序。这可以使用配置文件和权限集来完成。在此示例中,我们将允许任何拥有系统管理员的人访问该应用程序。
  5. 在“已连接的应用程序详细信息”页面的“配置文件相关”列表中,单击“ Manage Profiles.”。
  6. 选择System Administrator配置文件,然后单击Save。
  7. 单击Chatter选项卡。
  8. 单击左侧的Hello World链接。
    该应用程序出现,您将看到消息Hello User.FullName。

画布开发(2)快速入门

学习目标

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

  • 先决条件
  • 创建应用程序
  • 设置应用程序位置

这个简单的快速入门向您展示了如何使用Heroku快速入门开始使用Canvas。 Heroku Quick Start在Heroku上用Java或Ruby创建一个“hello world”应用程序,具体取决于您选择的模板。 同时,它在Salesforce中创建相应的画布应用程序。

Heroku应用程序是一个“hello world”网页,它调用Canvas SDK来显示有关当前用户的信息,并允许您发布到当前用户的Chatter提要。

先决条件

您需要适当的访问和工具来完成快速启动步骤。

  • 访问Developer Edition组织。
    如果您还不是Lightning Platform开发人员社区的成员,请访问developer.salesforce.com/signup并按照注册Developer Edition组织的说明进行操作。即使您已经拥有Enterprise Edition,Unlimited Edition或Performance Edition,也可以使用Developer Edition根据示例数据开发,暂存和测试您的解决方案,以保护您组织的实时数据。对于插入,更新或删除数据的应用程序(与简单地读取数据相反)尤其如此。
    如果您有现有的Developer Edition组织,并且从安装程序中看不到菜单项Canvas App Previewer,请联系Salesforce。
  • “自定义应用程序”和“修改所有数据”用户权限。如果您是管理员,则很可能已拥有这些权限。否则,您需要添加它们,以便您可以看到Canvas应用程序预览器并创建画布应用程序。
  • Heroku帐户。转到此处创建一个Heroku帐户:https://api.heroku.com/signup。
  • Java版本1.6或1.7以运行您创建的“hello world”应用程序的本地实例。 (该应用程序的Heroku实例自动下载正确版本的Java。)

创建应用程序

在此步骤中,您将在Salesforce组织中创建Heroku“hello world”应用程序和关联的画布应用程序。

  1. 在Salesforce中,从“设置”中,在“快速查找”框中输入Canvas App Previewer,然后选择“Canvas App Previewer”。
  2. 单击Heroku Quick Start。
  3. 在“模板”字段中,选择“ Java – Quick Start Template ”。
  4. 在Canvas App Name字段中,输入最多30个字符的唯一名称。
  5. 在Heroku App Name(Heroku应用程序名称)字段中,输入最多30个字符的唯一名称,该字符以字母开头,仅包含小写字母,数字和短划线。所有Heroku应用程序中的newappName必须是唯一的。此名称将成为应用程序URL的一部分,例如newappName.herokuapp.com。
  6. 在“身份验证类型”字段中,选择OAuth或API密钥。如果您已登录Heroku,Heroku OAuth会启动Heroku OAuth流程或使用Heroku令牌。在Heroku我的帐户页面上找到与您的帐户关联的API密钥。
  7. 单击“Create”。该应用程序显示在左侧导航窗格中。
    如果您看到错误“错误[读取超时]执行POST到Heroku克隆REST服务,”这意味着操作已经超时尝试联系Heroku。您可以在http://status.heroku.com上查看Heroku的状态。
    注意:如果您启用了双因素身份验证并选择了OAuth,请先输入您的Heroku用户名和密码,然后输入您的双因素身份验证信息。关闭OAuth提示并再次单击“Create”,应用程序现在将显示在导航窗格中。
  8. 单击左侧新应用程序的链接。
    该应用程序出现,您将看到消息Hello User.FullName,以及有关当前用户的其他信息。

你刚刚创建了一个画布应用程序祝贺!您只能在Canvas应用程序预览器中看到您的画布应用程序,直到您按照设置应用程序位置中的步骤设置它可以显示的位置。这定义了用户在组织中安装应用后的位置。

在幕后,Heroku快速入门设置了画布应用程序的允许用户,其中包括管理员批准的用户和您的个人资料。例如,如果您的用户配置文件是系统管理员,则该配置文件将添加到您刚刚创建的画布应用程序中,并且具有该配置文件的任何用户都可以访问画布应用程序。

我们建议您检查代码以查看画布应用程序的工作方式。该应用程序的源代码可以在Java app和Ruby app的公共GitHub存储库中找到。使用这些应用中的示例代码,了解如何在应用中解码和验证画布签名请求。

Set the App Location

在此步骤中,您将指定画布应用程序在Salesforce中向用户显示的位置。

  1. 在Salesforce应用程序中,从“设置”中,在“快速查找”框中搜索应用程序,然后在Lightforce Experience中选择应用程序管理器或在Salesforce Classic中选择已连接的应用程序。
  2. 在相关列表中,单击刚刚创建的应用程序的下拉箭头,然后单击“编辑”。
  3. 在“Canvas应用程序设置”部分的“位置”字段中,选择画布应用程序向用户显示的位置。在本演练中,选择Chatter选项卡。
    • Chatter Feed-画布应用程序显示在Feed中。如果选择此选项,则必须创建CanvasPost订阅源项并确保当前用户可以访问画布应用程序。
    • Chatter选项卡 – 画布应用程序显示在Chatter选项卡上的应用程序导航列表中。如果选择此选项,画布应用程序将自动显示在那里。
    • 控制台 – 画布应用程序显示在Salesforce控制台的页脚或侧边栏中。如果选择此选项,则必须通过将画布应用程序添加为自定义控制台组件来选择画布应用程序在控制台中显示的位置。
    • 布局和移动卡 – 画布应用程序可以显示在页面布局或移动卡上。如果选择此选项,则可以通过将画布应用程序添加到页面布局来选择画布应用程序的显示位置。
    • Mobile Nav-可从导航菜单访问画布应用程序。
    • 打开CTI – 画布应用程序出现在呼叫控制工具中。如果选择此选项,则必须在呼叫中心的定义文件中指定画布应用程序才能显示。
    • Publisher – 画布应用程序显示在Chatter发布者和操作栏中。如果选择此选项,则还必须创建画布自定义操作并将其添加到全局发布者布局或对象的页面布局。
    • Visualforce页面 – 画布应用程序可以显示在Visualforce页面上。如果添加组件以在Visualforce页面上公开画布应用程序,请确保为画布应用程序选择此位置;否则,你会收到一个错误。
  4. 单击“保存”。

由于您选择了Chatter选项卡,因此您的画布应用程序现在会显示在Chatter选项卡的左侧导航窗格中。

画布开发(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仍然存在,无论如何设置画布个人应用程序的组织首选项。

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

画布开发(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仍然存在,无论如何设置画布个人应用程序的组织首选项。

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

新系统管理员的基本要素

概要

全面而实用的新管理员管理基础是确保您在Salesforce中取得成功的核心培训。这对新管理员来说是必须的。我们建议管理员在开始Salesforce部署或接管现有部署之前学习本课程。

谁应该学这个课程?

新管理员的管理要点旨在:

  • 新系统管理员负责组织Salesforce应用程序的设置,配置和维护
  • 其他受益于深化Salesforce知识的团队,包括高级用户,销售运营和IT经理

您可以亲自或在虚拟教室中学习本课程。参与者可以通过虚拟上课来节省旅行费用。这两种格式都提供示范,动手练习以及教师的个人关注以及与同伴的互动。对于虚拟课程,您只需要一个Web浏览器和一个可以观看,收听和获得应用程序实践经验的电话。

当你完成这个课程的时候,你可以:

  • 自定义应用程序,包括页面布局,字段,选项卡和业务流程
  • 创建安全的Salesforce环境
  • 维护和导入干净的数据
  • 创建高价值报告和仪表板
  • 设置工作流程自动化

必备条件

先决条件包括对基本Salesforce概念和功能的充分理解,以及以下在线课程的完成,这些课程可在help.salesforce.com上获得。

  • 入门:浏览Salesforce
  • 入门:使用Sales Cloud

模块和主题

关于应用程序

  • 了解数据模型和导航
  • 探索闪电体验
  • 在帮助与培训中查找答案

让您的组织为用户做好准备

  • 设置公司资料
  • 配置用户界面
  • 设置活动和日历
  • 配置搜索设置
  • 设置Chatter
  • 使用Salesforce1启用移动访问

设置和管理用户

  • 管理用户档案
  • 创建和管理用户
  • 解决用户登录问题
  • 了解SalesforceA功能
  • 设置Chatter免费用户和邀请

安全和数据访问

  • 限制登录
  • 确定对象访问权限
  • 设置记录访问权限
  • 使用角色层次结构管理记录访问
  • 处理记录访问异常
  • 控制对事件的访问
  • 管理现场级安全性

自定义:字段

  • 管理标准字段
  • 创建新的自定义字段
  • 创建选择字段:选项列表和查找
  • 创建公式字段
  • 使用页面布局
  • 使用记录类型和业务流程
  • 保持数据质量

管理数据

  • 使用导入向导导入新记录
  • 使用数据加载器更新现有记录
  • 使用Data.com保持最新记录
  • 用户之间的传质记录
  • 使用每周导出备份数据
  • 批量删除记录

报告和仪表板

  • 运行和修改报告
  • 使用报告生成器创建新报告
  • 过滤报告
  • 使用公式和可视摘要汇总报告数据
  • 打印,导出和电子邮件报告
  • 构建仪表板

自动化

  • 邮件模板
  • 设置工作流程规则和Process Builder
  • 自动化潜在客户和案例

管理支持流程

  • 自动化支持流程
  • 了解Salesforce控制台
  • 在Service Cloud中启用协作
  • 使用报告和仪表板分析支持数据

控制用户可以访问的内容

学习目标

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

  • 描述对象和字段级别安全性之间的区别
  • 描述如何设置组织范围的默认共享设置

数据安全简介

既然您知道如何添加用户,您可能想知道如何确保他们能够看到他们需要查看的内容以及他们需要查看的内容。在本单元中,我们将向您展示如何配置用户对Salesforce记录的访问权限,以便他们只能访问所需的信息。

例如,假设您正在构建一个Recruiting应用程序,其中包含有关未结头寸,候选人和工作申请的信息。该应用程序将存储机密数据,例如社会安全号码,工资金额和申请人评论,这些数据只应向特定类型的用户公开。对于这样的应用程序,保护敏感数据非常重要,而不会让招聘人员,招聘经理和面试官更难以完成工作。

Salesforce提供灵活的分层共享模型,可以轻松地将不同的数据集分配给不同的用户组。这可确保您可以平衡安全性和便利性,最大限度地降低被盗或误用数据的风险,同时确保所有用户都可以轻松访问所需的数据。

Salesforce包含易于配置的安全控件,可以轻松指定哪些用户可以查看,创建,编辑或删除应用程序中的任何记录或字段。您可以在组织,对象,字段或单个记录级别配置访问权限。通过组合不同级别的安全控制,您可以为数千个用户提供恰当的数据访问级别,而无需单独为每个用户指定权限。

数据访问级别

您可以在四个主要级别配置Salesforce中的数据访问。

组织

在最高级别,您可以通过维护授权用户列表,设置密码策略以及限制对特定时间和特定位置的登录访问来保护对组织的访问。

对象

对象级安全性提供了控制哪些用户可以访问哪些数据的最简单方法。通过设置特定类型对象的权限,可以防止一组用户创建,查看,编辑或删除该对象的任何记录。例如,您可以使用对象权限来确保访调员可以查看职位和工作申请,但不能编辑或删除他们。

字段

您可以使用字段级安全性来限制对某些字段的访问,即使对于用户有权访问的对象也是如此。例如,您可以将职位对象的薪资字段设置为访问者不可见,但招聘经理和招聘人员可以看到。

记录

要以更高的精度控制数据,您可以允许特定用户查看对象,但随后限制他们允许查看的单个对象记录。例如,记录级访问允许访调员查看和编辑他们自己的评论,而不会暴露其他访调员的评论。您可以通过以下方式管理记录级访问。

  • 组织范围的默认值指定用户对彼此记录的默认访问级别。您使用组织范围的共享设置将数据锁定到最严格的级别,然后使用其他共享工具有选择地授予其他用户访问权限。例如,您可以让所有员工访问名为Candidate的对象,以允许任何人将候选添加到数据库。但您可以限制对职位的访问权限,以便任何人都可以看到可用的职位,但只有具有适当权限的员工才能编辑职位。
  • 角色层次结构打开对层次结构中较高层的访问权限,以便它们继承对层次结构中位于其下方的用户所拥有的所有记录的访问权限。角色层次结构不必与您的组织结构图完全匹配。相反,层次结构中的每个角色代表用户或用户组所需的数据访问级别。例如,您可以通过将组织范围的默认设置设置为“私有”来限制对候选人的访问,但允许招聘人员查看和编辑他们拥有的候选记录。招聘人员无法看到他们不拥有的候选记录,因为招聘人员在角色层级中都处于同一级别。但是,招聘经理可以获得对所有候选记录的读/写访问权限,因为他们在角色层次结构中处于比招聘人员更高的级别。
  • 通过共享规则,您可以对特定用户组的组织范围默认值进行自动例外处理,以允许他们访问他们不拥有或通常无法看到的记录。共享规则(如角色层次结构)仅用于为更多用户提供对记录的访问权限 – 它们不能比组织范围的默认设置更严格。例如,您可以允许所有员工查看职位,但使用共享规则授予对名为招聘经理的角色或组中的员工的完全编辑权限。
  • 手动共享允许特定记录的所有者与其他用户共享它们。虽然手动共享不像组织范围的共享设置,角色层次结构或共享规则那样自动化,但在某些情况下它可能很有用,例如,如果度假的招聘人员需要临时将工作申请的所有权分配给另一名员工。

记录级安全性概述

通过允许特定用户查看对象,然后限制他们允许查看的对象中的各个记录,您可以更精确地控制数据访问。例如,您可以让所有访问者访问具有组织范围默认值的评论,但限制他们只访问他们拥有的角色层次结构的评论。

在配置记录访问权限之前,您可能会发现回答以下问题很有用:

  • 您的用户是否应该对每条记录或仅仅是一个子集具有开放访问权限?
  • 如果它是一个子集,应该由哪些规则决定用户是否可以访问它们?

假设您创建了一个名为Recruiter的配置文件,以便为招聘人员创建对象级权限。您可以限制删除招聘相关对象(如职位或候选人)的权力,以便招聘人员永远无法删除这些对象。但是,您授予招聘人员创建,阅读或编辑招聘对象的权限并不一定意味着招聘人员可以阅读或编辑每个招聘对象记录,例如个人职位或候选人。这是平台中两个重要概念的结果:

  • 始终根据对象,字段和记录级权限的组合评估记录的权限。
  • 当对象与记录级权限冲突时,限制性最强的设置会获胜。

这意味着即使您授予配置文件创建,读取和编辑招聘对象的权限,如果个人招聘记录的记录级权限被证明更具限制性,那么这些规则定义了招聘人员可以访问。例如,如果您给予招募人员资料创建,阅读和编​​辑Candidates对象的权限,但限制招聘人员只能访问他们拥有的候选人记录,则招聘人员只能访问这些记录。

组织范围的共享默认值

既然您已经了解了有关记录级安全性的更多信息,那么让我们关注组织范围内的默认设置。这些是默认值,用于指定受限制最多的用户应具有的基准访问级别。您可以使用组织范围的默认值将数据锁定到此最严格的级别,然后使用其他记录级安全性和共享工具(角色层次结构,共享规则和手动共享)向需要的其他用户打开数据访问它。

您可以使用组织范围的共享设置指定对记录的默认访问级别,您可以为每种类型的标准或自定义对象单独设置它们。您可以确定具有对象权限的对象的所有记录的基本访问级别。您可以修改用户不拥有组织范围默认值的记录的权限。您永远不能使用组织范围的默认值来授予用户比通过对象权限更多的访问权限。

您可以通过回答每个对象的以下问题来确定应用程序所需的组织范围默认值。

  1. 谁是此对象最受限制的用户?
  2. 是否会有这个对象的实例不允许该用户看到?
  3. 是否会有这个对象的实例不允许该用户编辑?
A diagram for determining the sharing model for objects

根据您对这些问题的回答,您可以将该对象的共享模型设置为其中一个设置。

字段说明
Private只有记录所有者以及层次结构中该角色以上的用户可以查看,编辑和报告这些记录。
Public Read Only所有用户都可以查看和报告记录,但不能编辑它们。只有所有者和层次结构中该角色之上的用户才能编辑这些记录。
Public Read/Write所有用户都可以查看,编辑和报告所有记录。
Controlled by Parent用户可以基于他或她是否可以对与其关联的记录执行相同的动作来对联系人执行动作(诸如查看,编辑或删除)。

在您将对象的组织范围共享设置设置为“专用”或“公共只读”的环境中,您可以通过设置角色层次结构或定义共享规则来授予用户对记录的更多访问权限。但是,您只能使用共享规则来授予更多访问权限 – 除了最初使用组织范围的共享默认值指定的内容之外,它们不能用于限制对记录的访问。

举个例子,让我们回顾一下并回答Recruiting应用程序中Position对象的问题列表。

  1. 谁是此对象最受限制的用户
    标准员工配置文件的成员。他们被允许做的就是查看一个位置。
  2. 是否会有这个对象的实例不允许该用户看到?
    虽然最低和最高工资的价值对标准员工是隐藏的,但他们仍然可以查看所有职位记录。
  3. 是否会有这个对象的实例不允许该用户编辑?
    是的。标准员工不得编辑任何职位记录。

根据该流程图,对问题#3回答“是”意味着应该将Position对象的共享模型设置为Public Read Only。通过与其他招募对象重复相同的练习,您可以轻松地为它们找出适当的组织范围默认设置。标准员工配置文件是每个对象最受限制的用户,并且将存在特定员工无法查看的候选人,工作申请和审核记录。因此,您应该将Candidate,Job Application和Review对象的共享模型设置为Private。

Note
注意

您无法为Review对象设置组织范围的默认值。这是因为该对象位于主 – 详细信息关系的详细信息侧,并且详细记录会自动继承其父级的共享设置。因此,在我们的应用程序中,Review对象自动设置为Private。

设置组织范围的共享默认值

现在您已经阅读了有关组织范围的默认值,您已准备好设置一些。

  1. 从“设置”中,在“快速查找”框中输入“共享设置”,然后选择Sharing Settings.
  2. 单击“组织范围默认值”区域中的“ Edit  ”。
  3. 对于每个对象,选择要使用的默认访问权限。 (回想一下上一节中回答的问题,以帮助您确定哪种默认访问设置最合适。)
  4. 要允许角色层次结构中较高级别的员工自动访问记录,请选择“Grant Access Using Hierarchies”以获取没有“父级受控”默认访问权限的任何自定义对象。

在对象的组织范围共享设置默认设置为“专用”或“公共只读”的环境中,您可以通过设置角色层次结构或定义共享规则来授予用户对记录的更多访问权限。请记住,您只能使用共享规则来授予更多访问权限。除了最初使用组织范围的共享默认值指定的记录之外,您不能使用它们来限制对记录的访问。

默认情况下,Salesforce使用层次结构(如角色层次结构)自动向层次结构中记录所有者上方的用户授予记录访问权限。将对象设置为“私有”使这些记录仅对角色层次结构中的记录所有者和位于其上的用户可见。如果要禁用自定义对象层次结构中记录所有者上方用户的记录访问,请使用“授予使用层次结构访问权限”复选框。如果取消选中此自定义对象的复选框,则会将记录访问权限仅限于记录所有者和组织范围默认授予访问权限的用户。

如果取消选择“使用层次结构授予访问权限”,则角色层次结构中较高的用户不会收到自动访问权限。但是,某些用户仍然可以访问默认情况下不拥有的记录,例如具有“查看全部”和“全部修改”对象权限以及“查看所有数据”和“修改所有数据”系统权限的用户。

更新组织范围的默认值时,会导致共享重新计算自动运行并对记录应用任何访问更改。重新计算完成后,您会收到通知电子邮件,您可以刷新“共享设置”页面以查看更改。要查看更新状态,请从“设置”中,在“快速查找”框中输入“查看设置审计跟踪”,然后选择View Setup Audit Trail.

使用组织范围的默认设置保护数据后,生成的设置可能对某些用户而言过于严格。然后,您可以使用剩余的记录级安全控件:角色层次结构,共享规则和手动共享,以选择性地为需要它的特定员工打开记录访问。

添加新用户

学习目标

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

  • 描述用户帐户及其包含的信息类型。
  • 添加单个用户或多个用户。
  • 使用Salesforce移动应用程序随时随地管理用户。

什么是用户?

作为新管理员,您可以执行用户管理任务,如创建和编辑用户,重置密码,授予权限,配置数据访问等等。在本单元中,您将了解用户以及如何将用户添加到Salesforce组织。

那么用户是什么?用户是登录Salesforce的任何人。用户是贵公司的员工,例如销售代表,经理和IT专家,他们需要访问公司的记录。

Salesforce中的每个用户都有一个用户帐户。用户帐户标识用户,用户帐户设置确定用户可以访问的功能和记录。每个用户帐户至少包含以下内容:

  • Username
  • Email Address
  • User’s First and Last Name
  • License
  • Profile
  • Role (optional)

如果所有听起来都不熟悉,请不要担心。我们稍后会详细介绍它。

要查看和管理组织中的用户,请在“设置”中的“快速查找”框中输入“Users”,然后选择“Users”。用户列表显示组织中的所有用户。从列表中,您可以:

  • 创建一个或多个用户。
  • 重置所选用户的密码。
  • 单击名称,别名或用户名查看用户的详细信息页面。
  • 编辑用户的详细信息。
  • 如果启用了系统权限,或者用户已授予您系统管理员登录访问权限,请以任何用户身份登录。

关键术语

我们已经向您介绍了许多术语,因为我们已经描述了开始添加用户所需的背景信息。以下是您应该了解的一些关键术语及其定义。

用户名

每个用户都有用户名和电子邮件地址。用户名必须格式化为电子邮件地址,并且在所有Salesforce组织中必须是唯一的。它可以是用户的电子邮件地址,只要它是唯一的。

用户许可

用户许可证确定用户可以在Salesforce中访问哪些功能。例如,您可以允许用户使用标准Salesforce许可证访问标准Salesforce功能和Chatter。但是,如果您只想授予用户访问Salesforce中某些功能的权限,则可以选择许多许可证。例如,如果您必须授予用户访问Chatter的权限,而不允许他们在Salesforce中查看任何数据,则可以为他们提供Chatter Free许可。

简档

配置文件确定用户可以在Salesforce中执行的操作。它们具有一组权限,可授予对特定对象,字段,选项卡和记录的访问权限。每个用户只能有一个配置文件。根据用户的工作职能选择配置文件(标准用户配置文件是大多数用户的最佳选择)。不要为用户提供比用户完成工作所需的访问权限更多的配置文件。您可以使用权限集授予用户需要的更多项目的访问权限。

角色

角色根据角色层次结构中的位置确定用户可以在Salesforce中看到的内容。层次结构顶部的用户可以查看其下方用户拥有的所有数据。除非共享规则授予他们访问权限,否则较低级别的用户无法查看其上方或其他分支中的用户拥有的数据。角色是可选的,但每个用户只能有一个角色。

如果您有一个包含许多用户的组织,您可能会发现在添加用户时更容易分配角色。但是,您可以随时设置角色层次结构并为用户分配角色。角色仅适用于Salesforce的Professional,Enterprise,Unlimited,Performance和Developer版本。

别号

别名是一个简短的名称,用于标识列表页面,报告或其全名不适合的其他位置的用户。默认情况下,别名是用户名字的第一个字母和姓氏的前四个字母。

添加用户指南

您可以在Salesforce中使用许多选项来添加用户和许多工具。以下是一些可帮助您入门的指南。

  • Username: 每个用户必须具有在所有Salesforce组织(不仅仅是您的组织)中唯一的用户名。
  • Username Format: 用户必须拥有电子邮件地址格式的用户名(即jdoe@domain.com),但他们不必使用真实的电子邮件地址。 (只要他们的电子邮件地址在所有Salesforce组织中都是唯一的,他们就可以使用他们的电子邮件地址。)
  • Email: 用户可以跨组织使用相同的电子邮件地址。
  • Passwords: 用户必须在首次登录时更改密码。
  • Login Link: 用户只能使用注册电子邮件中的登录链接一次。如果用户关注该链接但未设置密码,则您(管理员)必须重置密码才能登录。

添加用户

如果启动了安装向导,则可能已添加了一些用户。但是,您可能需要在将来添加用户,尤其是随着公司的发展和雇佣更多员工。

根据您的组织规模或新员工入职流程,您可以选择一次添加一个用户,也可以一次添加多个用户。您可以在Salesforce中执行任一操作。您可以添加的最大用户数由Salesforce版本和您购买的用户许可证数量决定。

要添加用户:

  1. 从“设置”中,在“快速查找”框中输入用户,然后选择“Users”。
  2. 单击“New User”以添加单个用户,或单击“Add Multiple Users”以一次最多添加10个用户。
  3. 以电子邮件地址的形式输入每个用户的姓名,电子邮件地址和唯一的用户名。默认情况下,用户名与电子邮件地址相同,但您可以覆盖此用户名。
  4. 选择要与您创建的用户关联的用户许可证(许可证确定每个用户可以使用哪些配置文件)。
  5. 选择个人资料。
  6. 选择Generate passwords and notify user via email,以通过电子邮件向每个新用户发送登录名和临时密码。
  7. 单击保存。

现在您已经学习了如何将用户添加到Salesforce组织。在下一个单元中,我们将教您如何通过配置用户可以访问的内容来保护数据安全。

随时随地进行用户管理

访问用户管理和安装程序不仅限于桌面。如果您不在办公桌前并且需要执行管理职责,则可以使用SalesforceA移动应用程序随时随地进行安装。

您可以执行基本的管理任务,例如重置密码,冻结用户以及从移动设备查看当前系统状态。

您可以获得适用于iOS和Android移动设备的SalesforceA。从App Store™或Google Play™下载SalesforceA。

登录Salesforce移动应用程序

登录Salesforce Mobile App非常简单。您只需要几个关键成分即可成功登录移动应用程序。

  • Username
  • Super secret password
  • Correct instance

最后一项很重要。该实例可能与生产,沙箱或自定义域不同。默认情况下,Salesforce Mobile App连接到生产环境。您可以连接到沙箱环境以进行测试,或者为组织配置自定义域。准备好所有配料后,您就可以登录了。

Login Screen
  1. 打开Salesforce移动应用程序。
  2. 点按 Sign In.
    • 要登录沙箱或自定义域,iOS用户点击“设置”图标以选择正确的环境。 Android用户点按“溢出”图标以选择正确的环境。
  3. 输入用户名和密码。
  4. 点按 Log In.

监控信任状态

登录到SalesforceA后,您会看到“概述”页面,其中显示了最近的系统状态和最近查看过的用户。

Overview Screen

“最近的系统状态”部分显示来自trust.salesforce.com的有关您的实例在过去24小时内的系统性能的信息。 Trust.salesforce.com是Salesforce的网站,旨在提供有关服务可用性,性能,安全性,隐私和合规性的透明度。信任状态为您提供了一种快速简便的方法,可以查看您的组织绩效是否受到影响,以便您可以让用户知道任何更改。

从任何地方冻结用户

流行测验:你远离办公桌上的咖啡,你收到一封电子邮件,说用户的Salesforce帐户可能已被盗用。你是做什么?

好吧,因为您安装了SalesforceA,您可以平静地啜饮拿铁咖啡,并通过移动设备处理业务。

转到受感染用户的个人资料页面,然后点按并选择 Freeze.

Freeze User

现在,用户的被入侵帐户被冻结以防止任何麻烦,您可以回到享受当之无愧的咖啡休息时间。

您已经看到了通过SalesforceA随时随地使用安装程序可以执行的操作。您可以监控组织的信任状态或冻结帐户遭到入侵的用户。当您从拿铁咖啡休息时间回到办公桌后,我们将深入了解桌面上的安装程序可以为您做些什么。

添加新用户

学习目标

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

  • 描述用户帐户及其包含的信息类型。
  • 添加单个用户或多个用户。
  • 使用Salesforce移动应用程序随时随地管理用户。

什么是用户?

作为新管理员,您可以执行用户管理任务,如创建和编辑用户,重置密码,授予权限,配置数据访问等等。在本单元中,您将了解用户以及如何将用户添加到Salesforce组织。

那么用户是什么?用户是登录Salesforce的任何人。用户是贵公司的员工,例如销售代表,经理和IT专家,他们需要访问公司的记录。

Salesforce中的每个用户都有一个用户帐户。用户帐户标识用户,用户帐户设置确定用户可以访问的功能和记录。每个用户帐户至少包含以下内容:

  • Username
  • Email Address
  • User’s First and Last Name
  • License
  • Profile
  • Role (optional)

如果所有听起来都不熟悉,请不要担心。我们稍后会详细介绍它。

要查看和管理组织中的用户,请在“设置”中的“快速查找”框中输入“Users”,然后选择“Users”。用户列表显示组织中的所有用户。从列表中,您可以:

  • 创建一个或多个用户。
  • 重置所选用户的密码。
  • 单击名称,别名或用户名查看用户的详细信息页面。
  • 编辑用户的详细信息。
  • 如果启用了系统权限,或者用户已授予您系统管理员登录访问权限,请以任何用户身份登录。

关键术语

我们已经向您介绍了许多术语,因为我们已经描述了开始添加用户所需的背景信息。以下是您应该了解的一些关键术语及其定义。

用户名

每个用户都有用户名和电子邮件地址。用户名必须格式化为电子邮件地址,并且在所有Salesforce组织中必须是唯一的。它可以是用户的电子邮件地址,只要它是唯一的。

用户许可

用户许可证确定用户可以在Salesforce中访问哪些功能。例如,您可以允许用户使用标准Salesforce许可证访问标准Salesforce功能和Chatter。但是,如果您只想授予用户访问Salesforce中某些功能的权限,则可以选择许多许可证。例如,如果您必须授予用户访问Chatter的权限,而不允许他们在Salesforce中查看任何数据,则可以为他们提供Chatter Free许可。

简档

配置文件确定用户可以在Salesforce中执行的操作。它们具有一组权限,可授予对特定对象,字段,选项卡和记录的访问权限。每个用户只能有一个配置文件。根据用户的工作职能选择配置文件(标准用户配置文件是大多数用户的最佳选择)。不要为用户提供比用户完成工作所需的访问权限更多的配置文件。您可以使用权限集授予用户需要的更多项目的访问权限。

角色

角色根据角色层次结构中的位置确定用户可以在Salesforce中看到的内容。层次结构顶部的用户可以查看其下方用户拥有的所有数据。除非共享规则授予他们访问权限,否则较低级别的用户无法查看其上方或其他分支中的用户拥有的数据。角色是可选的,但每个用户只能有一个角色。

如果您有一个包含许多用户的组织,您可能会发现在添加用户时更容易分配角色。但是,您可以随时设置角色层次结构并为用户分配角色。角色仅适用于Salesforce的Professional,Enterprise,Unlimited,Performance和Developer版本。

别号

别名是一个简短的名称,用于标识列表页面,报告或其全名不适合的其他位置的用户。默认情况下,别名是用户名字的第一个字母和姓氏的前四个字母。

添加用户指南

您可以在Salesforce中使用许多选项来添加用户和许多工具。以下是一些可帮助您入门的指南。

  • Username: 每个用户必须具有在所有Salesforce组织(不仅仅是您的组织)中唯一的用户名。
  • Username Format: 用户必须拥有电子邮件地址格式的用户名(即jdoe@domain.com),但他们不必使用真实的电子邮件地址。 (只要他们的电子邮件地址在所有Salesforce组织中都是唯一的,他们就可以使用他们的电子邮件地址。)
  • Email: 用户可以跨组织使用相同的电子邮件地址。
  • Passwords: 用户必须在首次登录时更改密码。
  • Login Link: 用户只能使用注册电子邮件中的登录链接一次。如果用户关注该链接但未设置密码,则您(管理员)必须重置密码才能登录。

添加用户

如果启动了安装向导,则可能已添加了一些用户。但是,您可能需要在将来添加用户,尤其是随着公司的发展和雇佣更多员工。

根据您的组织规模或新员工入职流程,您可以选择一次添加一个用户,也可以一次添加多个用户。您可以在Salesforce中执行任一操作。您可以添加的最大用户数由Salesforce版本和您购买的用户许可证数量决定。

要添加用户:

  1. 从“设置”中,在“快速查找”框中输入用户,然后选择“Users”。
  2. 单击“New User”以添加单个用户,或单击“Add Multiple Users”以一次最多添加10个用户。
  3. 以电子邮件地址的形式输入每个用户的姓名,电子邮件地址和唯一的用户名。默认情况下,用户名与电子邮件地址相同,但您可以覆盖此用户名。
  4. 选择要与您创建的用户关联的用户许可证(许可证确定每个用户可以使用哪些配置文件)。
  5. 选择个人资料。
  6. 选择Generate passwords and notify user via email,以通过电子邮件向每个新用户发送登录名和临时密码。
  7. 单击保存。

现在您已经学习了如何将用户添加到Salesforce组织。在下一个单元中,我们将教您如何通过配置用户可以访问的内容来保护数据安全。

随时随地进行用户管理

访问用户管理和安装程序不仅限于桌面。如果您不在办公桌前并且需要执行管理职责,则可以使用SalesforceA移动应用程序随时随地进行安装。

您可以执行基本的管理任务,例如重置密码,冻结用户以及从移动设备查看当前系统状态。

您可以获得适用于iOS和Android移动设备的SalesforceA。从App Store™或Google Play™下载SalesforceA。

登录Salesforce移动应用程序

登录Salesforce Mobile App非常简单。您只需要几个关键成分即可成功登录移动应用程序。

  • Username
  • Super secret password
  • Correct instance

最后一项很重要。该实例可能与生产,沙箱或自定义域不同。默认情况下,Salesforce Mobile App连接到生产环境。您可以连接到沙箱环境以进行测试,或者为组织配置自定义域。准备好所有配料后,您就可以登录了。

Login Screen
  1. 打开Salesforce移动应用程序。
  2. 点按 Sign In.
    • 要登录沙箱或自定义域,iOS用户点击“设置”图标以选择正确的环境。 Android用户点按“溢出”图标以选择正确的环境。
  3. 输入用户名和密码。
  4. 点按 Log In.

监控信任状态

登录到SalesforceA后,您会看到“概述”页面,其中显示了最近的系统状态和最近查看过的用户。

Overview Screen

“最近的系统状态”部分显示来自trust.salesforce.com的有关您的实例在过去24小时内的系统性能的信息。 Trust.salesforce.com是Salesforce的网站,旨在提供有关服务可用性,性能,安全性,隐私和合规性的透明度。信任状态为您提供了一种快速简便的方法,可以查看您的组织绩效是否受到影响,以便您可以让用户知道任何更改。

从任何地方冻结用户

流行测验:你远离办公桌上的咖啡,你收到一封电子邮件,说用户的Salesforce帐户可能已被盗用。你是做什么?

好吧,因为您安装了SalesforceA,您可以平静地啜饮拿铁咖啡,并通过移动设备处理业务。

转到受感染用户的个人资料页面,然后点按并选择 Freeze.

Freeze User

现在,用户的被入侵帐户被冻结以防止任何麻烦,您可以回到享受当之无愧的咖啡休息时间。

您已经看到了通过SalesforceA随时随地使用安装程序可以执行的操作。您可以监控组织的信任状态或冻结帐户遭到入侵的用户。当您从拿铁咖啡休息时间回到办公桌后,我们将深入了解桌面上的安装程序可以为您做些什么。

发现多种货币设置

学习目标

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

  • 向您的组织添加新货币。
  • 总结使用单一货币与多种货币的影响。
  • 设置高级货币管理。
  • 修改转化率,并允许用户选择个人货币。

管理货币

无论你是生活在一个国际间谍的迷人生活中,还是你处于一个稍微不那么令人兴奋的9到5的情况,理解交易的价值是首要任务。在Salesforce中,您可以指定组织使用的货币,并且各个用户可以根据业务的位置将特定货币应用于其设置。

默认情况下,Salesforce组织使用单一货币。在公司设置中设置所需的货币区域设置后,记录中的所有货币值都将以该货币显示。

作为贵组织的管理员,您可以设置“公司货币”,它反映了公司总部的货币。您还可以维护活动货币列表及其相对于公司货币的转换率。 (有关稍后处理转换率的更多信息。)

Mom & Pop’s Spy Shop was single currency when they started using Salesforce, and were only dealing with United States–based clients. So when their admin set up the company settings, they set their default locale and currency locale as English (United States). They did business only in the United States so transactions were reported solely in USD.

Mom & Pop’s Spy Shop

但在被Nacho Secrets Agency收购后,Mom&Pop’s开始接触国际客户。现在是时候从单一设置转变为多货币设置了。这样做是非常轻松的(并且不涉及任何隐形的间谍工具)。但是一句警告 – 一旦启用多货币设置,就无法禁用它。

要启用和应用多种货币:

  1. 从快速查找中的设置搜索Company Information,然后选择Company Information。
  2. 单击 Edit.
  3. 选中 Activate Multiple Currencies.

启用多种货币后,您还可以:

  • 激活其他货币并选择新的公司货币。
  • 确保用户拥有正确的个人货币。
  • 确保用户在创建记录时使用正确的货币。

我们在此处介绍其中的一些步骤,但请参阅参考资料部分以获取更多详细信息。

激活货币

为组织激活多币种后,您可以通过激活或停用它们来指定支持的货币。无需秘密情报技能,只需点击几下:

  1. 在“设置”中,在“快速查找”框中输入“ Manage Currencies ”,然后选择“ Manage Currencies ”。将列出主动货币和非活动货币。活动和非活动货币列表列表
  2. 在“活动货币”中,单击 New
  3. 选择Currency Type。货币使用ISO货币代码按字母顺序排列。
  4. 输入相对于公司货币的转换率。 (有关转换率的更多信息。)
  5. 指定要以此货币显示的金额的小数位数。
  6. 单击Save.

要从非活动货币列表中激活货币,请单击货币旁边的Activate 。要取消激活,请单击“Deactivate ”,然后单击“OK”。 (注意:您无法停用公司货币。)

取消激活货币不会改变使用该货币的项目中的金额,但您的用户无法再使用非活动货币输入新金额。停用设置为用户个人货币的货币会自动将用户的货币重置为公司货币。

设置公司货币

如果您需要匆忙重新定位,您可以在配置后立即选择新的公司货币。

  1. 在“设置”中,在“快速查找”框中输入“Manage Currencies”,然后选择“Manage Currencies”。
  2. 在“活动货币”列表中,单击Change Corporate
  3. 从下拉列表中选择新的公司货币。只有已添加且处于活动状态的货币可用。
  4. 单击 Save.

更新转换率

通过编辑转化率,确保全球组织中的所有秘密代理商都使用最新的交易货币值。这使您可以管理活动和非活动货币与公司货币之间的静态汇率。

这些汇率适用于您组织中使用的所有货币字段。以下是编辑费率的步骤:

  1. 在“设置”中,在“快速查找”框中输入“ Manage Currencies  ”,然后选择“ Manage Currencies  ”。
  2. 在“活动货币”或“非活动货币”列表中,单击 Edit Rates.
  3. 输入每种货币与公司货币之间的转换率。
  4. 单击 Save.
List of conversion rates for active and inactive currencies

您的货币金额使用新汇率更新。

注意:不存储以前的转化率,机会,预测和其他金额内的所有转化都使用当前转化率。

实施高级货币管理

虽然标准转换率控制很简单,但它会影响当前和已完成的交易。为了准确保存历史记录,最好避免影响已完成业务的价值。机会和机会产品货币字段的高级货币管理使您可以管理汇率开始日期。

我们来看一个例子:

  • 1月1日,您将汇率更新为 1 USD = 0.9464 EUR.
  • 2月1日,您将汇率更改为 1 USD = 0.9353 EUR.

关闭的机会… 
使用此费率… 
1月1日至2月1日第一次汇率 (1 = 0.9464) 
2月1日之后第二次汇率(1 = 0.9353) 

设置多货币后,启用高级货币管理所需的步骤很少:

  1. 在“设置”中,在“快速查找”框中输入“Manage Currencies”,然后选择“Manage Currencies”。
  2. 在“高级货币管理”下未启用,请单击Enable.
  3. 出现提示时,选择 Yes, I want to enable Advanced Currency Management,然后单击Enable.

首次启用高级货币管理时,您现有的汇率将自动成为第一组过期汇率。在您定义另一组汇率之前,这些汇率始终有效。

Note
注意

启用高级货币管理后,Visualforce<apex:inputField><apex:outputField> 组件无法显示货币字段

添加个人货币

启用多币种后,将激活货币并编辑转换率,指示Mom&Pop的用户将个人货币添加到其个人资料中。现在他们可以正确地跟踪他们的新工作(并获得报酬)。

提醒这位于个人设置中:

  1. 单击页面顶部的配置文件图像,然后单击Settings.
  2. 在快速查找中输入 Language ,然后选择Language & Time Zone.
  3. 更新“货币”字段,然后单击 Save.

由于波普正把全部时间用于卢森堡客户的长期绝密案件,他将其货币设定为欧元 – 欧元,因此他的交易以欧元报告。与此同时,妈妈为多个国家的客户秘密工作,因此她将货币留在她的个人设置页面上,如美元。美元并单独管理每个账户的货币。

Every user in the company has their own currency

现在,他们代理机构中的每个用户都有个人货币。 它被用作配额,预测中的默认货币(取决于他们使用的预测版本 – 请参阅资源部分以获取更多帮助),机会,报价和报告。

以用户和客户熟悉的货币开展业务消除了不必要的障碍(并使我们远离计算器)。 当您的全球运营设置多种货币,转换率控制和个人货币时,您可以释放代理商以专注于工作本身,而不是当天的美元价值。

现在您已经收集了所有关于货币和公司设置配置的知识产权,您可以解决更新组织的重要工作,以便更有效地运行。