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

如何用Node.js SDK为Azure域名添加抑制列表?文档过时急寻API方案

解决方案:直接调用Azure通信服务抑制列表REST API

核心思路

既然Node.js SDK文档过时且对应suppressionLists属性不存在,直接调用Azure官方REST API是最快的替代方案,完全避开SDK版本兼容问题。

步骤实现

1. 生成有权限的访问令牌

使用Azure通信服务连接字符串生成带EmailSuppressionLists.Write权限的令牌,这是修改抑制列表的必要权限:

const { CommunicationIdentityClient } = require("@azure/communication-identity");

const connectionString = "你的Azure通信服务连接字符串";
const identityClient = new CommunicationIdentityClient(connectionString);

async function getAccessToken() {
  const user = await identityClient.createUser();
  const tokenResponse = await identityClient.getToken(user, ["EmailSuppressionLists.Write"]);
  return tokenResponse.token;
}

2. 调用API添加抑制列表条目

用axios或原生fetch发送POST请求,直接向Azure API提交需要添加的邮箱地址:

const axios = require("axios");

async function addToSuppressionList() {
  const token = await getAccessToken();
  const endpoint = "https://<你的通信服务资源名称>.communication.azure.com/email/suppressionLists/default/items?api-version=2024-07-01-preview";
  
  const payload = {
    emailAddresses: ["user1@example.com", "user2@example.com"],
    reason: "UserRequested" // 可选值:UserRequested、Bounced、SpamComplaint
  };

  try {
    const response = await axios.post(endpoint, payload, {
      headers: {
        "Authorization": `Bearer ${token}`,
        "Content-Type": "application/json"
      }
    });
    console.log("添加成功,状态码:", response.status);
  } catch (error) {
    console.error("添加失败:", error.response?.data || error.message);
  }
}

addToSuppressionList();

替换说明:将<你的通信服务资源名称>改为你Azure通信服务实例的资源名称。

3. 验证添加结果

发送GET请求查询当前抑制列表,确认条目已成功添加:

async function checkSuppressionList() {
  const token = await getAccessToken();
  const endpoint = "https://<你的通信服务资源名称>.communication.azure.com/email/suppressionLists/default/items?api-version=2024-07-01-preview";

  try {
    const response = await axios.get(endpoint, {
      headers: {
        "Authorization": `Bearer ${token}`
      }
    });
    console.log("当前抑制列表内容:", response.data);
  } catch (error) {
    console.error("查询失败:", error.response?.data || error.message);
  }
}

关键注意事项

  • API版本:示例使用2024-07-01-preview,可根据Azure官方API文档切换为正式版
  • 权限校验:令牌必须包含EmailSuppressionLists.Write,否则会返回403权限错误
  • 错误处理:重点捕获400(请求格式错误)、401(令牌无效)、404(资源未找到)等常见错误码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 01:47:07