Rumah > pembangunan bahagian belakang > Golang > API Borang Google - Ralat mencipta, mengemas kini item

API Borang Google - Ralat mencipta, mengemas kini item

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2024-02-06 11:33:14
ke hadapan
948 orang telah melayarinya

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

Kandungan soalan

Saya cuba mengemas kini borang sedia ada menggunakan api google forms. Saya mengisi medan lokasi dalam permintaan tetapi masih menerima create_item.location.index 无效或未提供的错误消息

daripada pelayan

Buat kod permintaan

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
}
Salin selepas log masuk

Nota: Saya menggunakan form api v1form api v1


正确答案


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

Jawapan betul

🎜Akhirnya menemui masalah. Apabila menambah item baharu pada borang, kita mesti bermula pada indeks 0, tetapi 0 ialah nilai lalai untuk int dalam protobuf, jadi apabila Ia akan diabaikan apabila permintaan dihantar. Penyelesaian: Medan hantar paksa 🎜🎜
// 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)
}
Salin selepas log masuk

Atas ialah kandungan terperinci API Borang Google - Ralat mencipta, mengemas kini item. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan