Публикация сообщения в Salesforce Chatter через Javascript SDK
Я использую это приложение в качестве основы для того, что я хочу сделать. https://github.com/sgshawnblanchard/CanvasNodeJS
У меня проблема в том, что я не совсем понимаю, что должно произойти, чтобы иметь возможность публиковать в ленте Chatter через приложение Canvas. У меня все работает, однако на этой странице: https://github.com/sgshawnblanchard/CanvasNodeJS/blob/master/public/index.html
вы увидите, что он публикует "подписанный запрос", вот где я запутался. Я понимаю, что мне нужно опубликовать, и это значение позволит Salesforce знать, что у меня есть разрешение на публикацию в фиде, однако как мне получить это значение? В примере вы видите.
<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 A точка (".")
Контекст и токен авторизации JSON закодированы в Base64
Подписанный запрос выглядит примерно так, хотя он будет намного длиннее: 9Rpl6rE7R2bSNjoSfYdERk8nffmgtKQNhr5U/5eSJPI=.eyJjb250ZXh0Ijp7InVzZXIiOnsibGFuZ3V....
Я знаю, как получить свой секрет из настроек SalesForce, однако я понятия не имею, что означает "токен JSON контекста и авторизации, закодированный в Base64".
Правильно ли я считаю, что мне нужно получить эти статические значения и создать длинную строку, очень похожую на то, что разработчик сделал в примере, и опубликовать ее вместе с любым сообщением, которое я хочу отправить в Chatter? Или я что-то упустил?
Вот еще одно видео, которое я посмотрел, однако у парня не осталось времени и он не показал, как это на самом деле работает https://www.youtube.com/watch?v=kcNBwOqj2qA
1 ответ
Оказалось, что настройки разрешений, которые я не сделал правильно. Не уверен, какое из них привело к сбою моего приложения, однако я просто создал приложение Heroku в изолированной программной среде предварительного просмотра приложения Salesforce, а затем произвел сравнение 1: 1 их готовых настроек. Это добилось цели.