КРАТКАЯ ВЕРСИЯ. У меня есть приложение Flex, которое использует API Salesforce.com. Я пытаюсь развернуть его на удаленном сервере, но продолжаю получать сообщение «Ошибка при входе в систему». когда я пытаюсь выполнить вход на серверы Salesforce. Что дает?
ДЛИННАЯ ВЕРСИЯ (возможно, кто-то позже сочтет это полезным): у меня есть гибкое приложение, которое является надстройкой для salesforce.com.
Если я загружу его как статический файл в salesforce, а затем вставлю на страницу visualforce, он будет работать нормально. В этом методе используется loginBySessionId, а не loginByCredentials.
Я хотел бы иметь возможность запускать его вне серверов Salesforce. IE, я хотел бы разместить приложение на моем собственном сервере, чтобы люди вводили свои учетные данные в приложении, а оно входило на серверы salesforce. Таким образом, если кто-то хочет попробовать мое приложение, ему не обязательно быть администраторами отдела продаж и не нужно устанавливать приложение на страницу Visualforce.
Вот в чем проблема. Если я ввожу данные для входа и запускаю их из компилятора, он подключается и загружает нужные данные. Если я экспортирую его как производственную версию, он все равно будет работать нормально. Однако, если я загружаю файлы релиза на свой сервер или передаю их на другой компьютер и запускаю их локально, я получаю сообщение «Ошибка при входе в систему». Кажется, у некоторых других были похожие проблемы, но нет решений и ничего нового. .
Что еще более странно, если я перенесу файлы проекта на другой компьютер и перекомпилирую их, он внезапно сработает. По сути, мне кажется, что мне нужно перекомпилировать приложение для каждого компьютера, на котором я планирую его запускать, но это непрактично. Тем не менее, я не понимаю, как это может иметь значение, если компилировать одно против другого. И да, те же версии flash, те же версии Flex.
Есть ли у кого-нибудь предложения по решению этой проблемы? Я просто неправильно понимаю, как развертывать гибкие приложения, или это какая-то неприятная вещь с API-интерфейсом Salesforce, и есть обходной путь?
Еще одна вещь, которая делает эту проблему особенно неприятной, заключается в том, что я не могу использовать отладчик, потому что, если я компилирую его на другом компьютере, он работает, поэтому, чтобы получить сообщение об ошибке, я должен построить, а затем перенести на другой компьютер. Я чувствую, что это может быть ключом к проблеме, но я не знаю, как это сделать.
Вот некоторый применимый код, довольно простой:
<flexforforce:F3WebApplication
id="app" statusChanged="statusChangedHandler(event)"
loginComplete="loginCompleteHandler(event)"
loginFailed="loginFailedHandler(event)"
sessionExpired="sessionExpiredHandler(event)"
serverUrl="http://na9.salesforce.com/services/Soap/u/19.0"
requiredTypes="Account,Contact,Opportunity,Lead,Task,User" />
protected function loginClickHandler( event : MouseEvent ) : void {
_username = '[email protected]';
_password = 'PASSWORD+SECURITY_TOKEN';
CursorManager.setBusyCursor();
app.loginByCredentials( _username, _password );
}