salesforce - как сделать API_Session_ID доступным для JavaScript - PullRequest
2 голосов
/ 19 октября 2011

У меня есть приложение javascript, работающее в компоненте домашней страницы. Он вызывает веб-сервис, который, в свою очередь, вызывает API Salesforce. Я хотел бы использовать переменную API_Session_ID для сохранения повторного входа в систему. Как я могу предоставить это для JavaScript, работающего в компоненте моей домашней страницы? В идеале я хотел бы использовать apex для рендеринга небольшого фрагмента скрипта, инициализируя переменную javascript с переменной API_Session_ID на всех страницах, но я не вижу, как это сделать.

Примечание. Я не могу использовать VF, так как приложение работает в компоненте домашней страницы. Нормальное решение для этого (запустить как VF в iframe) мне недоступно, так как мне нужен доступ к объектам javascript на главной странице, чего я не могу сделать из iframe.

Ответы [ 2 ]

3 голосов
/ 20 октября 2011

Хорошо, так что я понял это.В файле cookie сеанса есть значение 'sid', и это то, что нужно, немного подправив.Легко, когда знаешь как!Вот ссылка:

http://forums.sforce.com/t5/forums/forumtopicprintpage/board-id/general_development/message-id/7209/print-single-message/false/page/1

Это немного устарело.Я передаю значение sid cookie и window.location.host моему веб-сервису php.PHP, чтобы эти значения работали:

$sidparts = explode("!", $feed->sid['value']);
$location = "https://".parse_url($feed->server['value'],
    PHP_URL_HOST)."/services/Soap/u/20.0/".$sidparts[0];
$sessionId = "{$feed->sid['value']}";
1 голос
/ 19 октября 2011

Я тоже пытался сделать то же самое несколько раз.К сожалению, у меня не было успеха без VisualForce.

Я нашел ветку для обсуждения этой темы несколько дней назад.http://boards.developerforce.com/t5/AJAX-Toolkit-S-Controls/Detect-current-user-with-AJAX-toolkit/m-p/277241#M8485

Кроме того, это звучит так, как будто вы это знаете, но чтобы получить идентификатор сеанса с помощью VisualForce:

<script type="text/javascript">
    var __sfdcSessionId = '{!GETSESSIONID()}';
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...