如何从salesforce.com调用heroku java应用程序?

时间:2013-02-11 06:30:55

标签: java heroku salesforce integration

我对集成很新,但我在salesforce方面有很好的开发经验。我需要在salesforce中生成功率点演示,但目前似乎无法直接在salesforce中执行此操作。所以我用Google搜索并发现了一些生成ppt的java类。所以现在我能够在eclipse中的本地机器上运行这些java并生成ppt。

需要帮助才能了解我应该在哪里学习java课程? Heroku的?不知道该怎么做。我的salesforce Apex代码可以与Heroku上传的java类进行通信,如果是,那么如何?

对此有任何帮助。

此致 萨姆

1 个答案:

答案 0 :(得分:5)

是的,这绝对是可能的。 Salesforce和Heroku之间没有特殊的通信,但两者可以使用常规HTTP API相互通信。为此,您需要:

  1. 将您的PPT生成器暴露在Heroku上运行的Web服务中。首先,请查看Getting Started with Java on Heroku文章或Getting Started with Play! on Heroku文章,以便在Heroku上启动并运行基本的HTTP应用程序。然后,在应用程序中删除PPT生成器类并创建一个端点来访问它们。例如,您可以在/ppt创建一个端点,这样如果您转到https://example.herokuapp.com/ppt,将生成PPT并在HTTP响应中返回。当然,你可以让服务提供动态PPT,但是这个例子保持简单。

  2. 从Apex呼叫您的Heroku应用程序。为此,请查看Apex文档中的HTTP RESTful Services Classes。例如,您可以在Apex中执行类似的操作:

    Http h = new Http();
    
    HttpRequest req = new HttpRequest();
    req.setEndpoint('https://example.herokuapp.com/ppt');
    req.setMethod('GET');
    
    HttpResponse res = h.send(req);
    res.getBody();
    
  3. 如果这些PPT是保密的,您可能还希望在两个系统之间使用某种认证方案;否则,任何击中你的终端的人都可以获得PPT。我至少会使用带有共享密钥的基本身份验证来保护您的服务,但如果您愿意,也可以使用更高级的内容。

    我上面解释的是所有后端API,但是如果您想在Heroku中为您的服务创建UI并将其公开给Salesforce用户,您可能需要查看新的{ {3}}