对话API允许您以编程方式检索和提交Bazaarvoice对话数据以在应用程序中使用。要了解更多信息,请参阅对话API文档主页

内容

+显示 ——隐藏

介绍

本教程解释了如何使用Bazaarvoice Conversations API在应用程序中构建反馈提交和显示。读者将学会如何去做提交反馈通过对话API。本教程还介绍了用户界面:如何处理联合内容,以及如何模拟反馈计数的“实时”更新。

参考文档关于反馈提交的信息也会发布在开发者门户网站上

屈服的机制

介绍如何提交有益投票和不当反馈。有益的反馈和不恰当的反馈遵循相同的过程。

乐于助人的反馈

帮助反馈参数

提交有用性反馈需要填写以下参数:

名字 描述

内容类型

应用程序/ x-www-form-urlencoded

要求该字段在所有API请求中都是必需的。

X-Forwarded-For

内容作者IP地址

要求该字段在所有API请求中都是必需的。

变量的名称

万能钥匙

响应API密码。

要求该字段在所有API请求中都是必需的。

Api版本

API的最新版本。

要求该字段在所有API请求中都是必需的。

FeedbackType

“乐于助人”

要求该字段在所有API请求中都是必需的。

ContentType

审查|问题|回答|review_comment

要求该字段在所有API请求中都是必需的。

ContentId

内容的标识。

要求该字段在所有API请求中都是必需的。

投票

积极的|.*此参数仅用于FeedbackType =乐于助人

要求该字段在所有API请求中都是必需的。

帮助反馈请求

下面的示例代表了一个有用的反馈提交请求

POST /数据/ submitfeedback。json HTTP/1.1 Host: [stg.]api.bazaarvoice.com X-Forwarded-For: [AuthorIPAddress] Content-Type: application/x-www-form-urlencoded…ApiVersion = [latestApiVersion] &ContentType = [ContentType] &ContentId =[版权id]有些过火&FeedbackType = helpfulness&Vote = [HelpfulnessVote]万能钥匙= [yourKey]
此操作必须使用HTTP POST完成

不恰当的反馈

不恰当的反馈参数

提交不适当的反馈需要以下参数:

名字 描述

内容类型

应用程序/ x-www-form-urlencoded

要求该字段在所有API请求中都是必需的。

X-Forwarded-For

内容作者IP地址

要求该字段在所有API请求中都是必需的。

变量的名称

万能钥匙

响应API密码。

要求该字段在所有API请求中都是必需的。

Api Verion

API的最新版本。

要求该字段在所有API请求中都是必需的。

FeedbackType

“不合适”

要求该字段在所有API请求中都是必需的。

ReasonText

字符串,以识别被认为不合适的内容。*此参数仅用于FeedbackType =不合适PRR

可选该字段可选。

ContentType

审查|问题|回答|review_comment

要求该字段在所有API请求中都是必需的。

ContentId

内容的标识。

要求该字段在所有API请求中都是必需的。

不恰当的反馈请求

下面的示例代表了一个不恰当的反馈提交请求

POST /数据/ submitfeedback。json HTTP/1.1 Host: [stg.]api.bazaarvoice.com X-Forwarded-For: [AuthorIPAddress] Content-Type: application/x-www-form-urlencoded…ApiVersion = [latestApiVersion] &ContentType = [ContentType] &ContentId =[版权id]有些过火&FeedbackType = inappropriate&PassKey = [yourKey]
此操作必须使用HTTP POST完成

处理响应

下面的示例代表了对有用性反馈提交的响应。

{"Locale": "en_US", "Errors": [], "Feedback": {"Helpfulness": {"Vote": "POSITIVE", "AuthorId": "zdnjli12ey6odjql8n3zr6arlh"}}, "Form": [], "FormErrors": {}, "SubmissionId": null, "Data": {}, "TypicalHoursToPost": null, "AuthorSubmissionToken": null, "HasErrors": false}

您需要查看响应体来确定请求的状态。这是必要的,因为为了支持使用JSONP的应用程序,即使发生了错误,对话API也总是返回HTTP 200代码。

HasErrors元素应该进行评估,以确定API的成功/失败。关于可能错误的附加信息为可以在这里

响应的元素

名字 描述
数据

节,其中包含字段和字段组。

语言环境

将与此提交相关联的地区。

错误

如果出现错误,将填充此部分而不是其他字段。

反馈

对象,其中包含反馈数据。它包含投票值和作者的ID

形式

节,其中包含字段和组引用的数组。

FormErrors

节,该节包含一个对象,其属性表示用户输入错误。例如,未能提交特定字段所需的最少字符。

SubmissionId

唯一的提交事件ID,指的是成功的提交事件,如提交、更新等

数据

节,其中包含字段和字段组。

TypicalHoursToPost

这是内容发布的通常时间

AuthorSubmissionToken

HasErrors

布尔值,指示是否存在错误。

具体的错误代码记录在反馈参考

API对反馈提交的响应不包含当前的帮助计数。由实现来处理跟踪当前的总数,直到下一个显示响应,该响应将包含总数。看到附录下面阅读如何模拟实时反馈计数。

用户界面

反馈计数和反馈控件、按钮或其他允许最终用户提交反馈的HTML元素通常都在它们所描述的内容附近。下图为推荐的用户界面布局:

评论标题、文本和评分仍然是主要的特色元素。反馈计数和反馈控制是次要的。如果过滤或排序反馈计数,考虑使计数更突出。反馈计数为内容提供了额外的上下文。反馈控件允许最终用户对内容的重要性进行权衡。

反馈控制

最终用户必须发起一个动作来指示特定的内容是值得注意的(有用的或不合适的)。例如按钮、图标、单选按钮或复选框。任何数量的web控件都可以做到这一点。

反馈控件可能是类型乐于助人不合适的.这些类型是相互独立的。换句话说,提交一个类型不应该禁用另一个类型。的限制用户反馈小节详细介绍这个概念。

这两种类型的反馈控件应该只用于非联合的内容块。网站上的联合评论不接受反馈。只有本地评论,即网站上收集的评论,才能接受反馈。要处理这个问题,客户端应该基于是否显示HTML反馈控件(例如拇指向上/拇指向下的图标)来决定IsSyndicated输入评审响应。

不应该为这个内容提供反馈。下面是一条强调这一点的规则:

  • IsSyndicated:真不要显示提交反馈的选项。

  • IsSyndicated:假,允许最终用户提供反馈。

联合内容教程深入讨论这个话题。

限制用户反馈

对话API不会限制用户多次提交反馈。此外,对于反馈提交,作者的ID是不需要的。虽然支持匿名提交有助于收集内容情绪,但开发者需要限制用户界面中的重复提交。一旦提供了某种类型的反馈,就不应接受来自该最终用户的相同类型的反馈。

为了限制反馈,我们建议在用户提交对特定内容的反馈后放置标记,例如cookie或本地存储。该标志的存在可以用来确定是否应该允许反馈。标志值需要存储提供反馈的内容ID。需要两个标志,一个表示有用,一个表示不合适,因为它们是相互独立的。当已经提供反馈时,反馈HTML控件应该被禁用或隐藏。请看下面的示例:


单击上面的任何一个帮助投票都不会禁用报告不适当内容的能力。

如何模拟“实时”反馈

对话API不会实时更新反馈。下面的技巧可以用来给人一种反馈几乎是实时更新的印象。

乐于助人的反馈

反馈计数是来自对话API的标准响应的一部分/评论端点。

在API响应中,计数显示为

...TotalFeedbackCount: 7, TotalNegativeFeedbackCount: 6, TotalPositiveFeedbackCount: 1,…

如前所述,这些计数通常与它们所代表的内容一起显示。

首先,需要了解帮助反馈计数显示在哪里。这可能不仅仅是在产品展示页面上,而且在类别或其他页面上。确定位置是必要的,这样整个站点的反馈计数是同步的。

一旦最终用户提供了有用的反馈,受尊重的计数应该相应调整。

在有用值更新之后,最终用户应该不再与HTML控件交互。下面的按钮演示了这个概念。


单击按钮并刷新页面。按钮仍然是禁用的,反馈计数仍然增加一个。为了本演示的目的,设置了两个标志:

  • 捕获新的帮助计数的标志。
  • 一个标志,表示用户已经为给定的内容ID提交了有益投票。

不恰当的反馈

不适当的反馈计数不应该显示给消费者。如果在开发内部应用程序时需要这些计数,请联络支持