Sitecore 7.2 Social Connected Module 2.1 authResult= ошибка

Я установил модуль социальной связи 2.1 на Sitecore 7.2, затем настроил отображение профиля, приложение facebook, все шло хорошо.

Когда я пытаюсь войти с помощью рендеринга "Войти через Facebook", я получаю перенаправление на ту же страницу со строкой запроса об ошибке:

http://sc72rev151021.com/registration?authResult=error_9ffsede-dsdf6-4f50-9b6a-asdasdasd

Я проверил файл журнала и вижу эту ошибку:

28144 10:24:36 ОШИБКА Произошла ошибка в ConnectManager Исключение: Sitecore.Social.Infrastructure.Exceptions.SocialException Сообщение. Указанный ключ отсутствует в словаре.

Вложенное исключение

Исключение: System.Collections.Generic.KeyNotFoundException Сообщение: указанный ключ отсутствует в словаре. Источник: mscorlib
в System.Collections.Generic.Dictionary`2.get_Item(ключ TKey) в Sitecore.Social.Facebook.Networks.Providers.FacebookProvider.GetAccountBasicData(учетная запись) в Sitecore.Social.Client.Api.ConnectorClientManager.Connect(учетная запись, Boolean attachAccountToLoggedInUser, Boolean isAsyncProfileUpdate) в 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?

Спасибо

3 ответа

Решение

Решение этой проблемы заключается в следующем:

  1. Используйте любой отражатель.net, откройте Sitecore.Socail.Facebook.Dll, создайте проект из исходного кода.
  2. Исправьте ошибки в проекте, добавив необходимые ссылки.
  3. Перейти к этой функции GetAccountBasicData в FacebookProvider.cs
  4. Удалите код внутри функции и добавьте следующий код.

    строковый элемент; Assert.IsNotNull(account, "Параметр Account имеет значение null");

        IDictionary<string, object> accountData = this.GetAccountData(account, "/me");
        if (accountData == null)
        {
            return null;
        }
        string str = string.Concat(accountData["name"]);
        AccountBasicData accountBasicDatum = new AccountBasicData()
        {
            Account = account,
            Id = accountData["id"] as string
        };
        AccountBasicData accountBasicDatum1 = accountBasicDatum;
        if (accountData.ContainsKey("email"))
        {
            item = accountData["email"] as string;
        }
        else
        {
            item = null;
        }
        accountBasicDatum1.Email = item;
        accountBasicDatum.FullName = str;
        return accountBasicDatum;
    

Да, API Facebook, используемый в Sitecore Social Connected, устарел. Список разрешений в Facebook был изменен. Я столкнулся с подобной проблемой при добавлении приложения Facebook. Я думаю, что рендеринг "Войти через Facebook" также отправляет запрос в Facebook с устаревшим списком разрешений пользователей.

У меня была похожая проблема с модулем, и она была вызвана устаревшей версией SSL, используемой для запросов социальных API. Поддержка Sitecore предоставила исправление, которое решило эту проблему.

Другие вопросы по тегам