我正在使用Survey Monkey升级工作中使用的C#应用程序来收集客户满意度统计数据。升级是为了使它使用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中,我们使用/ survey端点创建我们的调查(下面的代码中使用的术语&#39;模板&#39;不是对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中,我们新调查中每页顶部显示的调查标题将反映出调查标题&#39;我们通过API请求发送的数据。然而在V3中,标题是&#39; value不会替换每页顶部显示的文本。它正确地确定了网站上的调查名称,但在每个页面的顶部,我们看到了新调查所基于的调查的标题(调查的ID是传递给API的&#39; from_survey_id&# 39。)
我认为我已经广泛搜索过此内容并且无法找到其他人来描述这个问题。我有什么想法我做错了吗?我是否需要在创建后对代码进行修改以在V3中实现此目的?
答案 0 :(得分:1)
事实证明这是API v3中的一个错误。只有部分调查标题正在复制调查中更新。
这已经解决了 - 期待修复(可能在本周的某个时间)并且它将开始工作而不会对您进行任何更改。
注意:调查中的PATCH应该正常工作(但除非必要,否则我不建议围绕此问题进行编码)