根据这篇文章: http://techmusingz.wordpress.com/2014/07/03/social-connected-with-sitecore-facebook-2-access-facebook-information/ 我应该将Sitecore.Social.ProfileMapping.Facebook.config中配置的属性导入SC用户配置文件:
然而我得到的只是:
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 :(得分: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
}
}