1

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

如何让其他属性填充?

4

2 回答 2

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”]; 
于 2015-01-23T17:48:21.937 回答
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
    }
}
于 2015-12-07T10:10:54.140 回答