Heim > Backend-Entwicklung > Golang > Google Form API – Fehler beim Erstellen und Aktualisieren von Elementen

Google Form API – Fehler beim Erstellen und Aktualisieren von Elementen

WBOY
Freigeben: 2024-02-06 11:33:14
nach vorne
813 Leute haben es durchsucht

Google Form API - 创建、更新项目时出错

Frageninhalt

Ich versuche, ein vorhandenes Formular mithilfe der Google Forms-API zu aktualisieren. Ich habe das Standortfeld in der Anfrage ausgefüllt, erhalte aber trotzdem create_item.location.index 无效或未提供的错误消息

vom Server

Anfragecode erstellen

func UpdateForm(formId string, form *forms.Form) *forms.Form {
   var requestElements []*forms.Request
   // Update form info
   requestElements = append(requestElements, &forms.Request{
      UpdateFormInfo: &forms.UpdateFormInfoRequest{
         Info:       form.Info,
         UpdateMask: "*",
      },
   })
   // Add items
   for i, item := range form.Items {
      element := &forms.Request{
         CreateItem: &forms.CreateItemRequest{
            Item:     item,
            Location: &forms.Location{Index: int64(i)},
         },
      }
      requestElements = append(requestElements, element)
   }

   request := forms.BatchUpdateFormRequest{
      IncludeFormInResponse: true,
      Requests:              requestElements,
   }

   response, err := formService.Forms.
      BatchUpdate(formId, &request).
      Context(context.TODO()).
      Do()
   if err != nil {
      panic(err)
   }

   return response.Form
}
Nach dem Login kopieren

Hinweis: Ich verwende form api v1form api v1


正确答案


终于找到问题了。当添加一个新项目到表单中时,我们必须从索引 0 开始,但是 0 是 protobuf 中 intindex

Richtige Antwort

🎜Endlich das Problem gefunden. Wenn wir dem Formular ein neues Element hinzufügen, müssen wir bei Index 0 beginnen, aber 0 ist der Standardwert für int in protobuf, also wann Es wird ignoriert, wenn die Anfrage gesendet wird. Lösung: Senden von Feldern erzwingen 🎜🎜
// Add items
for i, item := range form.Items {
    element := &forms.Request{
        CreateItem: &forms.CreateItemRequest{
            Item: item,
            Location: &forms.Location{
                Index:           int64(i),
                ForceSendFields: []string{"Index"},
            },
        },
    }
    requestElements = append(requestElements, element)
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonGoogle Form API – Fehler beim Erstellen und Aktualisieren von Elementen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage