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中实现这一点?

surveymonkey API V3 -从现有调查创建调查时的标题

原来这是API v3中的一个bug。副本调查中只有部分调查标题被更新。

这个问题已经解决了——预计会有一个修复出来(可能在本周的某个时候),它将开始工作,而不需要你做任何改变。

注意:调查的补丁应该正常工作(但我不建议围绕这个问题编码,除非必要)