Мы строили, строили и наконец построили :)
Что такое Force.com Canvas?
Force.com Canvas это технология, которая позволяет нам интегрировать сторонние приложения с нашим salesforce оргом.
Не важно на каком языке написано стороннее приложение, важно лишь доступность нашего приложения через https.
Force.com Canvas позволяет нам взаимодействовать с сторонним приложение от имени текущего salesfroce пользователя.
Компоненты Force.com Canvas.
- SSL(TLS)/HMAC/SHA - для безопасного обмена данными между нашим приложением и SF оргом
- Browser - с поддержкой cross domain javascript
- JavaScript / IFRAME - при помощи которых наши приложение встраивается в SF
- Salesforce APIs - REST / SOAP для обмена данными
- Canvas SDK - javascript api от SF
Где можно разместить Force.com Canvas?
В зависимости от заданных настроек, наше приложение может быть доступно на:
- Chatter page
- VisualForce Page
- Tab
- Page Layout
- Standalone
Если мы хотим встроить наше приложение на VF page, мы должны использовать тег <apex:canvasApp /> c fnnhb,enfvb
- developerName - имя нашего canvas приложения
- entityFields - список полей объекта, которые мы хотим передать в наше приложение (доступно с summer 14)
- parameters - строка в JSON формате ({param1: “value”, param2:value})
Технологии используемые Force.com Canvas
- Javascript SDK - позволяет взаимодействовать стороннему приложению с SF
-
Signed Request - данные отправляемые в наше приложение при помощи POST
-
Содержит контекстную информацию
-
User info
-
Org info
-
Environment info
-
Authentication info
-
-
JSON формат
-
Signed Request
Signed Request - параметр который передается в POST запросе в наше стороннее приложение. Это обычная строка, которую можно вытянуть из запроса следующим образом
var srEncoded = Request.Params.Get("signed_request");
Данная строка выглядит как base64 encoded и состоит из двух частей разделунных точкой.
левая_часть.правая_часть
Левая часть представляет собой электронную подпись, которую формирует SF и которую мы должны будем получить на .net стороне.
Правая часть это и есть наши параметры, которые передает SF в формате JSON.
От теории к практике!
Создать Canvas app очень просто. Он создается как и обычный connected app(Setup->Create->Apps->Connected apps), но для правильной работы нужно выполнить следующие шаги:
1. Выставить чекбокс Enable OAuth Settings в true, прописать callback url (совершенно любой урл в нашем случае) и выбрать scope для нашего приложения.
2. Далее опускаемся ниже (:p) и выставляем Force.com Canvas. Указываем Canvas App Url(по данному урлу и будут происходить взаимодействия между SF и .Net строной). Указываем Access Method как Signed Request и выбираем Locations(место где будет доступен наш canvas app)
После нажатия на Save будет создан Canvas App.
Стоит отметить, для того чтобы ограничить доступ к нашей .net стороне нам стоит запомнить Consumer Secret( с помощью него мы бедем генерировать и проверядь электронные подписи).
На этом настройка приложение на SF в принципе закончена.
.Net сторона
Я не совсем уверен что стоит подробно описывать все манипуляции, которые нужно провернуть .net части. Поэтому просто оставлю это здесь.(VS2013 solution)