我正在升级一个在工作中使用的C#应用程序,用它来收集客户满意度的统计数据。升级的目的是让它使用Survey Monkey V3而不是V2 (因为V2很快就会关闭)。我们的这两个版本的代码都使用了Ben的优秀的.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端点创建我们的调查(下面的代码中使用的“模板”一词并不引用/surveys 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中,“标题”值并不是替换出现在每一页顶部的文本。它正确地确定了站点上调查的名称,但在每一页的顶部,我们看到了新的调查所基于的调查标题( id作为‘from_survey_id’传递给API的调查)。
我想我已经在谷歌上搜索了相当多的内容,找不到其他人来描述这个问题。你知道我做错了什么吗?我是否需要在创建后对调查进行代码修改才能在V3中实现这一点?
发布于 2016-10-31 13:08:12
原来这是API v3中的一个bug。只有部分调查标题正在更新副本调查。
这个问题已经解决了--期待修复(很可能在本周某个时候),它将开始工作,而不会对您进行任何更改。
注意:调查中的补丁应该正常工作(但我不建议对这个问题进行编码,除非有必要)
https://stackoverflow.com/questions/40335436
复制相似问题