【问题标题】:Using the Tridion UGC web service to add ratings使用 Tridion UGC Web 服务添加评级
【发布时间】:2013-02-03 20:42:57
【问题描述】:

我知道我可以通过 UGC 网络服务添加 cmets,方法如下:-

WebServiceClient ugcCall = new WebServiceClient();

string ugcData = "{ \"d\" :{\"Content\":\"" + comment + "\",\"Status\":2,\"ItemPublicationId\":\"" + PublicationId + "\",\"ItemId\":\"" + itemid + "\",\"ItemType\":\"16\",\"Id\":0,\"ModeratedDate\":\"\",\"LastModifiedDate\":\"\",\"CreationDate\":\"\",\"Score\":0,\"Moderator\":\"\",\"User\":{\"Id\":\"ACME%5Cjbloggs\",\"Name\":\"Joe Bloggs\"}}}";

string result = ugcCall.UploadString("/Comments", "POST", ugcData);

我的问题是添加评分和好恶的语法是什么?这在任何地方都有记录吗?

MTIA

约翰

【问题讨论】:

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


    【解决方案1】:

    上传评分的命令是“/Ratings”而不是“/Comments”。当然,JSON 也不同。在下面的代码中,我没有手动写出 JSON,而是构造了一个简单的 Rating 对象并使用 JavascriptSerializer 将其转换为 JSON:

    TcmUri tcmUri = new TcmUri(itemUri);
    WSR_ContentDelivery.User user = new WSR_ContentDelivery.User { Id = GetUserId() };
    WSR_ContentDelivery.Rating rating = new WSR_ContentDelivery.Rating
    {
      CreationDate = DateTime.UtcNow,
      LastModifiedDate = DateTime.UtcNow,
      ItemPublicationId = tcmUri.PublicationId,
      ItemId = tcmUri.ItemId,
      ItemType = tcmUri.ItemTypeId,
      RatingValue = ratingValue.ToString(),
      User = user,
      Id = "0"
    };
    
    JavaScriptSerializer oSerializer = new JavaScriptSerializer();
    
    WSClient.UploadString("/Ratings", "POST", "{d:" + oSerializer.Serialize(rating) + "}", GetUserId());
    

    【讨论】:

    • 如果 WebServiceClient 不是 UGC 中的公共 API 并且将来可能会更改,这一点会很好。
    • 感谢 Quirijn 的示例!
    • 谢谢丹尼尔。对此你还有更多的信息吗?有计划公开吗?你知道在不久的将来是否会发生任何变化吗?
    • 目前,没有计划公开它,但您可以放心,因为在接下来的两个版本中,该区域没有计划更改。
    • 谢谢丹尼尔。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2012-06-07
    • 2013-01-14
    • 2012-07-25
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    • 2011-01-12
    相关资源
    最近更新 更多