Sitecore8社交连接不会导入已配置的Facebook个人资料属性

时间:2015-01-06 01:44:55

标签: sitecore sitecore-social-connected sitecore8

根据这篇文章: 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 here

然而我得到的只是:

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

如何填充其他属性?

2 个答案:

答案 0 :(得分:3)

从3.0版开始,Social Connected在Sitecore xDB联系方面存储社交个人资料字段。这就是您在用户个人资料中没有它们的原因。

要获取必填字段,您应使用Social Connected API。特别是,您应该使用SocialProfileManager类的GetSocialProfile方法来获取特定网络中用户的社交个人资料。然后,您将可以访问社交个人资料的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 :(得分:0)

我在Sitecore 8上遇到了同样的问题。 实际上,来自facebook的基本数据可以从GetCustomProperty功能获得,但其余的简档数据稍后会被检索到。在 SocialProfileManager 下提供。

要让此课程可用,请记住在项目中引用Sitecore.Social.Api.dll和Sitecore.Social.Domain.dll。

之后f.e。:

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
    }
}