surveymonkey API V3 -从现有调查创建调查时的标题
本文关键字:调查 创建 标题 API V3 surveymonkey | 更新日期: 2023-09-27 18:15:33
我正在升级工作中使用的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端点创建调查,如下所示(下面代码中使用的术语"模板"不是对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中的一个bug。副本调查中只有部分调查标题被更新。
这个问题已经解决了——预计会有一个修复出来(可能在本周的某个时候),它将开始工作,而不需要你做任何改变。
注意:调查的补丁应该正常工作(但我不建议围绕这个问题编码,除非必要)