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

调用Microsoft Graph获取多语言SharePoint站点如何指定Preferred-Language?

解决方案:调用Microsoft Graph获取多语言SharePoint站点指定语言版本信息

可以通过配置请求参数强制获取指定语言的站点信息,无需调整Azure AD注册应用的基础权限配置,仅需在Azure函数的请求逻辑中做少量调整即可实现,具体操作如下:

  • 请求头配置(推荐方案)

    调用Graph站点接口时,在请求头中添加Preferred-Language字段,取值为目标语言的标准语言代码(英文为en-US、简体中文为zh-CN等),该配置优先级最高,可直接覆盖默认的语言返回规则。
    以Azure函数常用的C# HttpClient调用为例,示例代码如下:

    using System.Net.Http;
    using System.Net.Http.Headers;
    
    // 此处省略令牌获取逻辑,沿用你现有获取Graph访问令牌的代码即可
    string graphAccessToken = "你的Graph接口访问令牌";
    string targetSiteUrl = "https://graph.microsoft.com/v1.0/sites/xxxxxxxx.sharepoint.com/:/sites/test-comms-site";
    
    var httpClient = new HttpClient();
    // 添加授权头
    httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", graphAccessToken);
    // 配置首选语言为英文
    httpClient.DefaultRequestHeaders.Add("Preferred-Language", "en-US");
    // 发起请求
    HttpResponseMessage response = await httpClient.GetAsync(targetSiteUrl);
    

    如果使用Microsoft Graph SDK发起请求,可直接在请求构造阶段添加语言配置,以.NET Graph SDK为例:

    var graphClient = new GraphServiceClient(
        new DelegateAuthenticationProvider(async (requestMessage) =>
        {
            requestMessage.Headers.Authorization = new AuthenticationHeaderValue("Bearer", graphAccessToken);
            // 配置首选语言
            requestMessage.Headers.AcceptLanguage.Add(new StringWithQualityHeaderValue("en-US"));
        }));
    // 调用接口获取站点信息
    var siteInfo = await graphClient.Sites["xxxxxxxx.sharepoint.com:/sites/test-comms-site:"].GetAsync();
    
  • 可选配置:注册应用声明配置

    若不想修改请求逻辑,也可在Azure AD注册应用的清单中配置optionalClaims,为访问令牌添加preferred_language声明,设置默认返回语言。该配置优先级低于请求头配置,灵活度较低,适合全场景固定返回语言的需求。

  • 注意事项

    若你指定的语言没有在站点多语言配置中添加对应翻译,接口会自动回退到站点默认语言返回内容,不会抛出请求错误。


内容的提问来源于stack exchange,提问作者Miguel Angel García Martínez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 07:51:02