Я установил социальный подключенный модуль 2.1 на Sitecore 7.2, затем настроил сопоставление профиля, приложение facebook, все прошло хорошо.Sitecore 7.2 Social Connected Module 2.1 authResult = ошибка
При попытке войти в систему с помощью визуализации «Войти с Facebook», я получаю перенаправлять на той же странице со строкой запроса об ошибке:
http://sc72rev151021.com/registration?authResult=error_9ffsede-dsdf6-4f50-9b6a-asdasdasd
Я проверил файл журнала, и я вижу эта ошибка:
28144 10:24:36 ERROR The error in ConnectManager occured Exception: Sitecore.Social.Infrastructure.Exceptions.SocialException Message: The given key was not present in the dictionary.
Nested Exception
Exception: System.Collections.Generic.KeyNotFoundException Message: The given key was not present in the dictionary. Source: mscorlib
at System.Collections.Generic.Dictionary`2.get_Item(TKey key) at Sitecore.Social.Facebook.Networks.Providers.FacebookProvider.GetAccountBasicData(Account account) at Sitecore.Social.Client.Api.ConnectorClientManager.Connect(Account account, Boolean attachAccountToLoggedInUser, Boolean isAsyncProfileUpdate) at Sitecore.Social.Client.Api.Connector.ConnectorAuthCompleted.AuthCompleted(AuthCompletedArgs args)
Тогда я перекомпиляции библиотеки DLL, а код врезаться здесь (следующий фрагмент кода из Sitecore.Social.Facebook.dll):
public AccountBasicData GetAccountBasicData(Account account)
{
Assert.IsNotNull(account, "Account parameter is null");
IDictionary<string, object> accountData = this.GetAccountData(account, "/me");
if (accountData == null)
{
return null;
}
string str = string.Concat(accountData["first_name"], " ", accountData["last_name"]);
AccountBasicData accountBasicDatum = new AccountBasicData()
{
Account = account,
Id = accountData["id"] as string,
Email = accountData["email"] as string,
FullName = str
};
return accountBasicDatum;
}
private IDictionary<string, object> GetAccountData(Account account, string access)
{
return this.FacebookRequest(account, access, null, (FacebookClient facebookClient, string feedPath, object inputParams) => facebookClient.Get(feedPath) as IDictionary<string, object>);
}
Любая идея? Этот модуль зависит от устаревших ключей facebook?
Спасибо
могли бы вы предоставить URL на Facebook страницу, на которой вы будете перенаправлены только после попытки войти в систему? Я предполагаю, что он переносит устаревший объем разрешений. – Anton
Спасибо Антон за помощь, первое, что пользователь на этой странице http://sc72rev151021.com/registration, затем он пытается войти в систему с помощью рендеринга facebook, затем он перенаправится на ту же страницу http://sc72rev151021.com/ Регистрация? authResult = error_9ffsede-dsdf6-4f50-9b6a-asdasdasd –
должен быть один промежуточный запрос в Facebook между двумя страницами, которые вы упомянули. Используйте Fiddler или сетевую панель инструментов разработчика в своем браузере, чтобы получить ее. – Anton