2015-01-06 10 views
1

Согласно этой статье: http://techmusingz.wordpress.com/2014/07/03/social-connected-with-sitecore-facebook-2-access-facebook-information/ я должен получить свойства, настроенные в Sitecore.Social.ProfileMapping.Facebook.config импортированы в профиль SC Пользователя: enter image description hereSitecore8 социального подключение не импортирует сконфигурировано Facebook свойства профиля

Все, что я получаю, но таковы:

fb_basicData_id: 100001964217563 
fb_basicData_email: <hidden>@hotmail.com 
fb_basicData_appKey: <hidden> 
fb_basicData_appSecret: <hidden> 
fb_basicData_accessTokenSecret: <hidden> 
fb_lastRenewed: 20150106T013821Z 
fb_fieldsLastRenewed: 20150105T234345Z 

Как получить другие свойства для заполнения?

+0

Я собираюсь взять выстрел в темноте с этим, как я до сих пор не было возможности исследовать социальные функции Sitecore 8 ... Имеет указанную учетную запись пользователя выполнил все остальные поля (например, работу, образование и т. д.), поскольку некоторые из этих полей являются необязательными. Каковы настройки конфиденциальности для указанной учетной записи пользователя. Возможно, эта информация была доступна только для друзей, а не для всех, и т. Д. –

+0

К сожалению, все проверено. Информация о профиле есть и не должно быть никаких ограничений. – ArjanP

ответ

3

Начиная с версии 3.0, Social Connected хранит поля социального профиля в гранях контакта Sitecore xDB. Вот почему у вас их нет в профиле пользователя.

Чтобы получить требуемые поля, вы должны использовать API с социальным подключением. В частности, вы должны использовать метод GetSocialProfile класса SocialProfileManager для получения социального профиля пользователя в определенной сети. И тогда у вас будет доступ ко всем полям социального профиля в свойстве Fields социального профиля. Пример:

var socialProfileManager = ExecutingContext.Current.IoC.Get<ISocialProfileManager>(); // or create it directly: new SocialProfileManager(); 
var socialProfile = socialProfileManager.GetSocialProfile(“userName”, “Facebook”); 
var facebookGender = socialProfile.Fields[“fb_gender”]; 
+1

Какую версию Sitecore вы используете? Я не вижу ExecutingContext.Current .. вы используете свой собственный контейнер DI? Второй метод возвращает пустые профили без полей. Я проверил свою конфигурацию, secutiry и т. Д., Но все равно не повезло. –

+0

Я использую Sitecore Experience Platform 8 - Update 2. 'ExecutingContext.Current' - это часть Social Connected, чтобы использовать его, вы должны ссылаться на сборку Sitecore.Social.Infrastructure.dll. Кроме того, вы можете просто создать экземпляр напрямую: 'new SocialProfileManager()' –

+0

@Derek Я бы предложил вам проверить, есть ли соответствующий социальный профиль, хранящийся в XDB. Для этого вам нужно найти соответствующий контакт в коллекции «Контакты» и проверить, есть ли фасет SocialProfile с соответствующим сетевым элементом. –

0

Я боролся с той же проблемой на Sitecore 8. Действительно основные данные из Facebook можно с помощью функции GetCustomProperty, но остальные данные профиля позже извлечены & доступны под SocialProfileManager.

Чтобы этот класс был доступен, не забудьте указать Sitecore.Social.Api.dll и Sitecore.Social.Domain.dll в свой проект.

После этого фе:

string facebook_email = Sitecore.Context.User.Profile.GetCustomProperty("fb_basicData_email"); 
if (!String.IsNullOrEmpty(facebook_email)) 
{ 
    email.Text = facebook_email; // update UI here 
} 
var socialProfile = new SocialProfileManager(); 
// Do we have an extra profile from the user? 
if (socialProfile.SocialProfileExists(user.Name, "Facebook")) 
{ 
    var facebookProfile = socialProfile.GetSocialProfile(user.Name, "Facebook"); 
    if (facebookProfile.Fields["fb_first_name"] != null) 
    { 
     // do something here 
    } 
}