0

私がやりたいことの基礎としてこのアプリケーションを使用しています。https://github.com/sgshawnblanchard/CanvasNodeJS

私が抱えている問題は、Canvas アプリケーションを介して Chatter フィードに投稿できるようにするために何が必要かをよく理解していないと思うことです。私はすべてが機能していますが、このページでは: 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>

私は、この値が 2 つのもので構成されていることを理解しています

署名されたリクエストは、次の要素が連結された文字列です。

HMAC SHA-256 アルゴリズムで暗号化されたキャンバス アプリのコンシューマー シークレット ピリオド (".")

Base64 でエンコードされたコンテキストと認証トークンの JSON

署名されたリクエストは次のようになりますが、もっと長くなります:

SalesForce 設定内からシークレットを取得する方法は知っていますが、「Base64 でエンコードされたコンテキストと認証トークンの JSON」が何を意味するのかわかりません

これらの静的な値を取得し、開発者が例で行ったのと同じように長い文字列を作成して、Chatter に送信したいメッセージと一緒に投稿する必要があると考えるのは正しいですか? または、何か不足していますか?

これは私が見た別のビデオですが、男は時間切れで、実際にどのように機能するかを示していませんでしたhttps://www.youtube.com/watch?v=kcNBwOqj2qA

4

1 に答える 1

0

私が正しく行っていない権限設定であることが判明しました。アプリが失敗した理由はわかりませんが、Salesforce アプリケーション プレビュー サンドボックスで Heroku アプリを作成し、すぐに使用できる設定を 1 対 1 で比較しました。それはトリックをしました。

于 2014-08-29T17:43:11.020 に答える