Tridion 教资会帖子内容

Tridion 教资会帖子内容,tridion,tridion-2011,tridion-content-delivery,ugc,Tridion,Tridion 2011,Tridion Content Delivery,Ugc,我只是尝试运行一个使用UGC web服务发布UGC评论的小原型 下面是代码示例。我收到来自web服务的403响应,这表明我未被授权使用该服务,因此我认为我需要创建一个身份验证头?有没有人能举例说明如何使用教资会网页服务发表评论 string ugcData = "{d\":{\"Content\":\"FROM WEB SERVICE\",\"Status\":2,\"ItemPublicationId\":\"68\",\"ItemId\":\"17805\",\"ItemType\":\"1

我只是尝试运行一个使用UGC web服务发布UGC评论的小原型

下面是代码示例。我收到来自web服务的403响应,这表明我未被授权使用该服务,因此我认为我需要创建一个身份验证头?有没有人能举例说明如何使用教资会网页服务发表评论

string ugcData = "{d\":{\"Content\":\"FROM WEB SERVICE\",\"Status\":2,\"ItemPublicationId\":\"68\",\"ItemId\":\"17805\",\"ItemType\":\"16\",\"Id\":0,\"ModeratedDate\":\"\",\"LastModifiedDate\":\"\",\"CreationDate\":\"\",\"Score\":0,\"Moderator\":\"\",\"User\":{\"Id\":\"DOMAIN%5Cbsmith\",\"Name\":\"Bill Smith\"}\"}";

WebServiceClient ugcCall = new WebServiceClient();

ugcCall.UploadString("/PostData", "POST", ugcData);
MTIA


John

您应该尝试在评论集上发布:

ugcCall.UploadString("/Comments", "POST", ugcData);
然后你会发现你错过了CreationDate,你需要在实体中添加如下内容:

\"CreationDate\":\"/Date(1359457694472)\"
(我还没有检查你是否需要更多的报价)。有关JSON字符串中日期的格式,请检查

如果仍然存在问题,请尝试将
域%5Cbsmith
更改为另一个虚拟值(例如“
测试

如果这还不够,那么您可以查看UGC Web服务生成的日志,并尝试找出一些堆栈跟踪

这里还有一件事需要注意:UGC属性需要在Web.config中正确定义,以便发布


希望这能有所帮助。

我使用了与您下面相同的方法,即为UGC web服务使用生成的代理。为了创建正确的json,我们使用了标准的.NET JavaScriptSerializer。我认为这使代码更容易阅读

下面是一段代码片段,可能会有所帮助。当然,您需要确保设置了变量

 WSR_ContentDelivery.User user = new WSR_ContentDelivery.User
 {
        Id = GetUserId(),
        Name = username,
        EmailAddress = email,
        ExternalId = website
 };

 WSR_ContentDelivery.Comment comment = new WSR_ContentDelivery.Comment
 {
        CreationDate = DateTime.UtcNow,
        LastModifiedDate = DateTime.UtcNow,
        ItemPublicationId = tcmUri.PublicationId,
        ItemId = tcmUri.ItemId,
        ItemType = tcmUri.ItemTypeId,
        Content = content,
        User = user,
        Status = Statuses.SubmittedNeedsModeration,
        Score = 0
 };

 JavaScriptSerializer serializer = new JavaScriptSerializer();
 return WSClient.UploadString("/Comments", "POST", "{d:" + 
        serializer.Serialize(comment) + "}", user.Id);

为什么要使用web服务发布评论?哪一个API是WebServiceClient类?好问题,我们能让您有兴趣提交到。如果您有时间,请使用相同的SO帐户注册。您好,我们正在使用DD4T进行此项目,因此无法使用标准的web控件。WebServiceClient是UGC web服务的一部分。嗨,Bart,已经注册。:)嗨,丹尼尔,谢谢你的指点。你的“评论”建议而不是“PostData”让它发挥了作用。我将创建日期留空,因为它似乎默认为日期。一旦我将其更改为“Comments”,日志就会导致JSON字符串中出现语法错误。这一点已经纠正,现在它是根据来自web服务的评论发布的。再次感谢。