Survey Monkey API V3 - 从现有调查创建时的调查标题
Survey Monkey API V3 - Survey title when creating from an existing survey
我正在升级工作中使用的 C# 应用程序,以使用 Survey Monkey 收集客户满意度统计数据。升级是为了让它使用 Survey Monkey API V3 而不是 V2(因为 V2 很快就会关闭)。我们代码的两个版本都使用了 Ben Emmett 出色的 .NET 包装器 (https://github.com/bcemmett/SurveyMonkeyApi),并使用适当的方法进行了扩展,以支持创建新调查和发送邀请。
在版本 2 中,我们使用 Create_Flow API 方法在现有调查的基础上生成新的调查(我们有几个现有的基础调查,并根据调查的类型选择合适的调查)我们正在调查的项目)。新调查的标题反映相关项目的名称很重要。我们的 V2 代码的相关部分如下所示:
var data = new CreateFlowSettings();
data.survey.survey_title = legislationTitle;
data.survey.from_survey_id = fromSurveyId;
data.collector.recipients = recipients;
data.email_message.subject = subject;
data.email_message.body_text = bodyText;
data.email_message.reply_email = replyEmail;
var serializedData = JsonConvert.SerializeObject(data);
const string endPoint = "/batch/create_flow";
var response = MakeApiRequest(endPoint, serializedData);
var createFlowResponse =
JsonConvert.DeserializeObject<CreateFlowResponseObjects.CreateFlowResponse>(response.ToString());
return createFlowResponse;
在 V3 中,我们像这样使用 /surveys 端点创建我们的调查(下面代码中使用的术语 'template' 不是对模板调查的 Survey Monkey 概念的引用):
public Survey CreateSurvey(string templateSurveyid, string newSurveyTitle)
{
const string endpoint = "/surveys";
var requestData = new RequestData {{"from_survey_id", templateSurveyid}, {"title", newSurveyTitle}};
var result = MakeApiRequest(endpoint, Verb.POST, requestData);
return result.ToObject<Survey>();
}
在 V2 中,我们新调查中每一页顶部显示的调查标题将反映我们随 API 请求发送的 'survey_title' 数据。然而,在 V3 中,'title' 值不会替换出现在每个页面顶部的文本。它正确地确定了网站上调查的名称,但在每一页的顶部,我们看到了新调查所基于的调查的标题(ID 为 API 的调查作为 'from_survey_id').
我想我已经在谷歌上搜索了相当广泛的内容,但找不到任何其他人描述这个问题。知道我做错了什么吗?我是否需要在创建调查后修改代码才能在 V3 中实现此目的?
原来这是 API v3 中的错误。副本调查中仅更新了部分调查标题。
此问题已解决 - 期待修复(可能在本周某个时候),它会在您这边无需任何更改的情况下开始工作。
注意:调查中的 PATCH 应该可以正常工作(但除非必要,否则我不建议围绕该问题进行编码)
我正在升级工作中使用的 C# 应用程序,以使用 Survey Monkey 收集客户满意度统计数据。升级是为了让它使用 Survey Monkey API V3 而不是 V2(因为 V2 很快就会关闭)。我们代码的两个版本都使用了 Ben Emmett 出色的 .NET 包装器 (https://github.com/bcemmett/SurveyMonkeyApi),并使用适当的方法进行了扩展,以支持创建新调查和发送邀请。
在版本 2 中,我们使用 Create_Flow API 方法在现有调查的基础上生成新的调查(我们有几个现有的基础调查,并根据调查的类型选择合适的调查)我们正在调查的项目)。新调查的标题反映相关项目的名称很重要。我们的 V2 代码的相关部分如下所示:
var data = new CreateFlowSettings();
data.survey.survey_title = legislationTitle;
data.survey.from_survey_id = fromSurveyId;
data.collector.recipients = recipients;
data.email_message.subject = subject;
data.email_message.body_text = bodyText;
data.email_message.reply_email = replyEmail;
var serializedData = JsonConvert.SerializeObject(data);
const string endPoint = "/batch/create_flow";
var response = MakeApiRequest(endPoint, serializedData);
var createFlowResponse =
JsonConvert.DeserializeObject<CreateFlowResponseObjects.CreateFlowResponse>(response.ToString());
return createFlowResponse;
在 V3 中,我们像这样使用 /surveys 端点创建我们的调查(下面代码中使用的术语 'template' 不是对模板调查的 Survey Monkey 概念的引用):
public Survey CreateSurvey(string templateSurveyid, string newSurveyTitle)
{
const string endpoint = "/surveys";
var requestData = new RequestData {{"from_survey_id", templateSurveyid}, {"title", newSurveyTitle}};
var result = MakeApiRequest(endpoint, Verb.POST, requestData);
return result.ToObject<Survey>();
}
在 V2 中,我们新调查中每一页顶部显示的调查标题将反映我们随 API 请求发送的 'survey_title' 数据。然而,在 V3 中,'title' 值不会替换出现在每个页面顶部的文本。它正确地确定了网站上调查的名称,但在每一页的顶部,我们看到了新调查所基于的调查的标题(ID 为 API 的调查作为 'from_survey_id').
我想我已经在谷歌上搜索了相当广泛的内容,但找不到任何其他人描述这个问题。知道我做错了什么吗?我是否需要在创建调查后修改代码才能在 V3 中实现此目的?
原来这是 API v3 中的错误。副本调查中仅更新了部分调查标题。
此问题已解决 - 期待修复(可能在本周某个时候),它会在您这边无需任何更改的情况下开始工作。
注意:调查中的 PATCH 应该可以正常工作(但除非必要,否则我不建议围绕该问题进行编码)