You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过C#结合服务账号认证调用Google Forms REST API修改表单?

可以采用类似认证方式调用Google Forms REST API

是的,你完全可以用和Drive API类似的服务账号认证方式来调用Google Forms REST API,不需要依赖第三方封装库,直接通过GoogleCredential完成认证后,用HttpClient调用官方REST接口即可。

具体实现步骤

  • 指定Forms API的权限范围:替换Drive的Scope为Forms对应的权限,比如:

    • https://www.googleapis.com/auth/forms.body:允许修改表单内容(比如编辑问题)
    • https://www.googleapis.com/auth/forms.body.readonly:只读访问表单内容
      根据你的需求选择合适的Scope。
  • 构建认证后的HttpClient:基于服务账号密钥生成凭证,然后创建带有认证的HttpClient,示例代码如下:

using Google.Apis.Auth.OAuth2;
using System.Net.Http;
using System.Net.Http.Headers;

var credential = GoogleCredential.FromFile(serviceAccountKeyPath)
    .CreateScoped(new[] { "https://www.googleapis.com/auth/forms.body" });

// 获取访问令牌
var token = await credential.UnderlyingCredential.GetAccessTokenForRequestAsync();

// 创建HttpClient并设置Authorization头
var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
  • 调用Forms REST API接口:比如要修改表单问题,可以调用批量更新接口,示例请求:
var formId = "你的表单ID";
var updateUrl = $"https://forms.googleapis.com/v1/forms/{formId}:batchUpdate";

// 构造修改请求的JSON内容(比如修改某个问题的标题)
var requestBody = new
{
    requests = new[]
    {
        new
        {
            updateItem = new
            {
                itemId = "要修改的问题ID",
                updateItemInfo = new
                {
                    title = new { value = "修改后的问题标题" }
                }
            }
        }
    }
};

var jsonContent = new StringContent(
    System.Text.Json.JsonSerializer.Serialize(requestBody),
    System.Text.Encoding.UTF8,
    "application/json");

var response = await httpClient.PostAsync(updateUrl, jsonContent);
response.EnsureSuccessStatusCode(); // 确保请求成功

注意事项

  • 服务账号授权:必须把目标Google Form共享给服务账号的邮箱(在服务账号密钥文件的client_email字段中可以找到),权限至少设置为「编辑者」,否则会出现权限不足的错误。
  • 权限范围匹配:确保你请求的API操作和指定的Scope匹配,比如修改表单内容必须用forms.body权限,只读操作可以用forms.body.readonly。

内容的提问来源于stack exchange,提问作者tonydev314

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 18:50:05