【问题标题】:UGC user is coming back as NullUGC 用户以 Null 身份返回
【发布时间】:2013-02-08 08:18:48
【问题描述】:

我正在使用 UGC Web 服务返回 UGC 内容,但我遇到的问题是用户被返回为 null。正在将用户输入 UGC 数据库 - 我可以在 UGC_USERS 表和 UGC_ITEMS 表中看到用户,但是在使用 odata.svc 检索 cmets 时,用户返回为空。

WebServiceClient ugcCall2 = new WebServiceClient();
Uri uri = new Uri("http://new.ugc.service/odata.svc");
CDS.ContentDeliveryService cds = new CDS.ContentDeliveryService(uri);
var comments = client.Comments;

有人知道为什么会这样吗?此时尚未启用 Audience Manager。我们只是从域用户添加 cmets - 用户名出现在 UGC 数据库中,但是当我们从 odata 检索 cmets 时,用户返回为 null。

谢谢

约翰

【问题讨论】:

    标签: tridion tridion-2011 tridion-content-delivery ugc


    【解决方案1】:

    约翰,

    确保您在调用中使用 Expand 方法:

    client.Comments.Expand("User")
    

    这将确保完整的用户数据也是结果的一部分。

    直接查询Odata就可以看清楚:

    odata.svc/Comments?$expand=User
    

    干杯

    【讨论】:

    • 嗯,你知道这就是答案。 ;) 为了对此进行扩展,我们想知道为什么 odata 会返回用户数据,但是当我们将 odata 加载到 CDS 时,用户对象为空。正如 Neil 指出的那样,一旦调用了 expand 方法,我们就可以使用用户数据。
    【解决方案2】:

    这似乎是错误(-un)配置Ambient Data Framework (ADF)的情况。确保在您的网站上配置了 ADF,即您从中调用 OData 服务的服务器。

    ADF 负责将您的客户端信息(例如用户 ID、cookie、会话 ID 等)从一台机器发送到另一台机器。在您的情况下,与 OData 的通信似乎是在没有此信息的情况下完成的。这表明 ADF 配置不正确。再次查看 UGC 的文档以了解如何配置它。

    顺便说一句,你的示例代码不是很清楚,client 是什么?

    【讨论】:

    • 但我虽然 OData 服务旨在为任何框架的“第三方”提供内容 - 你是说他们需要 ADF 来从服务中读取 cmets?
    【解决方案3】:

    正如 Mihai 所说,确保在 UGC CD Web 服务上将 UGC 环境磁带配置为(登台或实时)网站。如果不这样做,用户将注册为 ID 为空。

    有关安装 UGC 时更常见的问题,另请参阅我的博客:

    http://80000ft.blogspot.nl/2012/08/common-issues-while-installing-ugc.html

    【讨论】:

    • John 的评论表明用户正在被注册 - 他们出现在 UGC_USERS 表中。如果它们在数据库中,为什么它们不属于 OData 返回的结果集?
    • 如果我没记错的话,用户已注册但他们的 ID 设置为 NULL。也许有人可以确认?
    猜你喜欢
    • 1970-01-01
    • 2021-03-18
    • 2021-08-23
    • 1970-01-01
    • 1970-01-01
    • 2018-12-09
    • 1970-01-01
    • 1970-01-01
    • 2018-10-30
    相关资源
    最近更新 更多