Sitecore8 social connect未导入已配置的Facebook配置文件属性

Sitecore8 social connect未导入已配置的Facebook配置文件属性,sitecore,sitecore-social-connected,sitecore8,Sitecore,Sitecore Social Connected,Sitecore8,根据这篇文章: 我应该将Sitecore.Social.ProfileMapping.Facebook.config中配置的属性导入到SC用户配置文件中: 然而,我得到的只是这些: fb_basicData_id: 100001964217563 fb_basicData_email: <hidden>@hotmail.com fb_basicData_appKey: <hidden> fb_basicData_appSecret: <hidden> f

根据这篇文章: 我应该将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
fb\u基本CDATA\u id:100001964217563
fb\u BasicATA\u电子邮件:@hotmail.com
fb\u基本CDATA\u应用程序密钥:
fb\u基本CDATA\u应用机密:
fb\u基本CDATA\u accessTokenSecret:
fb_最新更新日期:20150106T013821Z
fb_Fieldslastranewed:20150105T234345Z

如何获取要填充的其他属性?

从3.0版开始,Social Connected在Sitecore xDB联系人面中存储社交配置文件字段。这就是为什么用户配置文件中没有它们

要获取所需字段,应使用社交连接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”]; 
var socialProfileManager=ExecutingContext.Current.IoC.Get();//或者直接创建:新的SocialProfileManager();
var socialProfile=socialProfileManager.GetSocialProfile(“用户名”、“Facebook”);
var facebookGender=socialProfile.Fields[“fb_性别”];

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

您正在使用哪个版本的Sitecore?我看不到ExecutingContext.Current。。您正在使用自己的DI容器吗?第二个方法返回一个没有字段的空概要文件。我已经检查了我的配置、安全性等,但仍然不走运。我正在使用Sitecore体验平台8-更新2
ExecutingContext.Current
-它是Social Connected的一部分,要使用它,必须引用Sitecore.Social.Infrastructure.dll程序集。或者,您可以直接创建一个实例:
new SocialProfileManager()
@Derek我建议您检查XDB中是否存储了适当的社交配置文件。为此,您需要在“联系人”集合中找到一个合适的联系人,并检查是否存在具有合适网络元素的SocialProfile方面。@VitaliiTylyk即使我使用了相同的代码,也没有在字段中获得任何项目。我的配置文件映射配置也已更新,但仍然没有运气。你能告诉我哪里可能是错的吗?我将在黑暗中试一试,因为我还没有机会调查SiteCore 8社交功能。。。指定的用户帐户是否已完成所有其他字段(如工作、教育等),因为其中一些字段是可选的。指定用户帐户的隐私设置是什么。它可能已经将一些信息设置为仅对朋友可用,而不是对所有人可用,等等。不幸的是,所有信息都已签出。配置文件信息在那里,应该没有任何限制。