2014-08-29 24 views
0

我正在使用此应用程序作为我正在寻找的基础。 https://github.com/sgshawnblanchard/CanvasNodeJS通过Javascript SDK向Salesforce Chatter发送消息

我遇到的问题是我不明白为了能够通过Canvas应用发布到Chatter feed需要发生什么。我有一切工作,但在本页:https://github.com/sgshawnblanchard/CanvasNodeJS/blob/master/public/index.html

你会看到他发布“签名的请求”,这里是我感到困惑。我知道我需要发布信息,并且该价值可以让salesforce知道我有权发布到Feed,但是如何获得该值?在这个例子中你会看到。

<form action="canvas" method="post"> 
      <input id="signed_request" name="signed_request" type="text" value="Pxy%2FPFsGb%2FfH1ORo%2B0vqdJjCi97Bypek0hzST8UIGzY%3D.eyJjb250ZXh0Ijp7InVzZXIiOnsibGFuZ3VhZ2UiOiJlbl9VUyIsInRpbWVab25lIjoiQW1lcmljYS9DaGljYWdvIiwibG9jYWxlIjoiZW5fVVMiLCJmdWxsTmFtZSI6IlNoYXduIEJsYW5jaGFyZCIsInVzZXJJZCI6IjAwNTQwMDAwMDAxQ3ppQ0FBUyIsInVzZXJUeXBlIjoiU1RBTkRBUkQiLCJ1c2VyTmFtZSI6InNoYXduX2JsYW5jaGFyZEBzY2h1bWFjaGVyZ3JvdXAuY29tLmNhbnZhcyIsImVtYWlsIjoic2hhd25fYmxhbmNoYXJkQHNjaHVtYWNoZXJncm91cC5jb20uY2FudmFzIiwicHJvZmlsZVBob3RvVXJsIjoiaHR0cHM6Ly9zZ2NvcnAtLWNhbnZhcy0tYy5jczE1LmNvbnRlbnQuZm9yY2UuY29tL3Byb2ZpbGVwaG90by83MjllMDAwMDAwMDAybm8vRiIsInByb2ZpbGVJZCI6IjAwZTMwMDAwMDAwaFFWMCIsImZpcnN0TmFtZSI6IlNoYXduIiwibGFzdE5hbWUiOiJCbGFuY2hhcmQiLCJhY2Nlc3NpYmlsaXR5TW9kZUVuYWJsZWQiOmZhbHNlLCJyb2xlSWQiOiIwMEU0MDAwMDAwMGtaU1kiLCJjdXJyZW5jeUlTT0NvZGUiOiJVU0QiLCJwcm9maWxlVGh1bWJuYWlsVXJsIjoiaHR0cHM6Ly9zZ2NvcnAtLWNhbnZhcy0tYy5jczE1LmNvbnRlbnQuZm9yY2UuY29tL3Byb2ZpbGVwaG90by83MjllMDAwMDAwMDAybm8vVCJ9LCJlbnZpcm9ubWVudCI6eyJwYXJhbWV0ZXJzIjp7fSwiZGltZW5zaW9ucyI6eyJ3aWR0aCI6IjgwMHB4IiwiaGVpZ2h0IjoiOTAwcHgifSwibG9jYXRpb25VcmwiOiJodHRwczovL3NnY29ycC0tY2FudmFzLmNzMTUubXkuc2FsZXNmb3JjZS5jb20vX3VpL3BsYXRmb3JtL2Nvbm5lY3QvdWkvQ2FudmFzUHJldmlld2VyVWk%2FcmV0VVJMPSUyRnVpJTJGc2V0dXAlMkZTZXR1cCUzRnNldHVwaWQlM0RTdHVkaW8mc2V0dXBpZD1DYW52YXNQcmV2aWV3ZXJVaSIsInVpVGhlbWUiOiJUaGVtZTMiLCJ2ZXJzaW9uIjp7ImFwaSI6IjI3LjAiLCJzZWFzb24iOiJTUFJJTkcifX0sIm9yZ2FuaXphdGlvbiI6eyJuYW1lIjoiVGhlIFNjaHVtYWNoZXIgR3JvdXAiLCJvcmdhbml6YXRpb25JZCI6IjAwRGUwMDAwMDAwN3ZpYkVBQSIsIm11bHRpY3VycmVuY3lFbmFibGVkIjpmYWxzZSwiY3VycmVuY3lJc29Db2RlIjoiVVNEIn0sImxpbmtzIjp7ImVudGVycHJpc2VVcmwiOiIvc2VydmljZXMvU29hcC9jLzI3LjAvMDBEZTAwMDAwMDA3dmliIiwibWV0YWRhdGFVcmwiOiIvc2VydmljZXMvU29hcC9tLzI3LjAvMDBEZTAwMDAwMDA3dmliIiwicGFydG5lclVybCI6Ii9zZXJ2aWNlcy9Tb2FwL3UvMjcuMC8wMERlMDAwMDAwMDd2aWIiLCJyZXN0VXJsIjoiL3NlcnZpY2VzL2RhdGEvdjI3LjAvIiwic29iamVjdFVybCI6Ii9zZXJ2aWNlcy9kYXRhL3YyNy4wL3NvYmplY3RzLyIsInNlYXJjaFVybCI6Ii9zZXJ2aWNlcy9kYXRhL3YyNy4wL3NlYXJjaC8iLCJxdWVyeVVybCI6Ii9zZXJ2aWNlcy9kYXRhL3YyNy4wL3F1ZXJ5LyIsInJlY2VudEl0ZW1zVXJsIjoiL3NlcnZpY2VzL2RhdGEvdjI3LjAvcmVjZW50LyIsInVzZXJVcmwiOiIvMDA1NDAwMDAwMDFDemlDQUFTIiwiY2hhdHRlckZlZWRzVXJsIjoiL3NlcnZpY2VzL2RhdGEvdjI3LjAvY2hhdHRlci9mZWVkcyIsImNoYXR0ZXJHcm91cHNVcmwiOiIvc2VydmljZXMvZGF0YS92MjcuMC9jaGF0dGVyL2dyb3VwcyIsImNoYXR0ZXJVc2Vyc1VybCI6Ii9zZXJ2aWNlcy9kYXRhL3YyNy4wL2NoYXR0ZXIvdXNlcnMiLCJjaGF0dGVyRmVlZEl0ZW1zVXJsIjoiL3NlcnZpY2VzL2RhdGEvdjI3LjAvY2hhdHRlci9mZWVkLWl0ZW1zIn19LCJhbGdvcml0aG0iOiJITUFDU0hBMjU2IiwidXNlcklkIjoiMDA1NDAwMDAwMDFDemlDIiwiY2xpZW50Ijp7Imluc3RhbmNlSWQiOiIwNlBlMDAwMDAwMDhPS2YiLCJjbGllbnRJZCI6IjNNVkc5ZFBHenBjM2tXeWQuSWtvcTJuVG5uTVI3OWkuOWphR0d5aVBQRDk1WXhNMHNDZDNaRWplX0Jhb1NpU0FtaXU3OWFqdVZQekJJbXdDRFB6UlAiLCJ0YXJnZXRPcmlnaW4iOiJodHRwczovL3NnY29ycC0tY2FudmFzLmNzMTUubXkuc2FsZXNmb3JjZS5jb20iLCJpbnN0YW5jZVVybCI6Imh0dHBzOi8vc2djb3JwLS1jYW52YXMuY3MxNS5teS5zYWxlc2ZvcmNlLmNvbSIsIm9hdXRoVG9rZW4iOiIwMERlMDAwMDAwMDd2aWIhQVFrQVFIS1EwaFIudUl5alFuVW1ZeF9KZTVfek9CUUJ4RGY0ZF9NNFpTMGc0dmJ1am4yS0Y3UjcwN3AweVI2TGI5ZUxLZDVzcVZxd2xUUnpTXzhySzVNNnpBVmZINWNrIn0sImlzc3VlZEF0IjpudWxsfQ%3D%3D" /> 
      <input type="submit" value="submit"/> 
     </form> 

据我所知,这个值是由上两件事情,在这里找到http://www.salesforce.com/us/developer/docs/platform_connect/Content/canvas_app_signed_req_authentication.htm

的签名的请求为级联以下元素的字符串:

画布应用程序的消费者的秘密加密使用HMAC SHA-256算法周期(“。”)

在Base64中编码的上下文和授权令牌JSON

的签名的请求类似于此,尽管这将是更 长: 9Rpl6rE7R2bSNjoSfYdERk8nffmgtKQNhr5U/5eSJPI = .eyJjb250ZXh0Ijp7InVzZXIiOnsibGFuZ3V ....

我知道如何从Salesforce设置里面把我的秘密,但是我不知道什么“在Base64中编码的上下文和授权令牌JSON”意思是

我正确地认为我需要获取这些静态值并创建一个很长的字符串,很像开发人员在示例和帖子中做的它,以及我想发送给Chatter的任何消息?或者我错过了什么?

这里是另一个视频,我看了,但是那家伙跑出来的时候,并没有显示出它是如何实际工作https://www.youtube.com/watch?v=kcNBwOqj2qA

回答

0

原来是一个权限设置,我没有做正确。不知道哪一个让我的应用程序失败,但是我只是在Salesforce应用程序预览沙箱上创建了一个Heroku应用程序,然后对它们的开箱即用设置进行了1比1的比较。那就是诀窍。