【必须拥有付费商业许可证】微软 M365 Copilot 转 OpenAI API py 脚本
- 内容介绍
- 文章标签
- 相关推荐
因为 team 车队的阵亡,没法免费养虾,想着微软还有个 M365 Copilot ,想着有没有办法转成兼容 OpenAI API 的代理进行养虾。搜索了一下发现 Microsoft 从 2025 年底开始逐步开放了 Microsoft 365 Copilot Chat API(preview → beta),路径是:
https://graph.microsoft.com/beta/copilot/conversations
https://graph.microsoft.com/beta/copilot/conversations/{id}/chat
https://graph.microsoft.com/beta/copilot/conversations/{id}/chatOverStream ← 这个支持 SSE streaming
如果有 M365 Copilot 许可,是可以直接调用的。贫穷促使我在咸鱼花巨款搞了个 E3 管理员账号账号,折腾了一下午,才知道必须要拥有 Microsoft 365 Copilot 商业许可证才行,单纯的 Office 365 E3 Developer 是不行的。
image1106×411 15.7 KB
image793×277 13.3 KB
被 Gemini 看穿了,现在把脚本分享出来给能用着的佬,或者给佬们提供个思路。
SnowShot_2026-03-13_16-43-08772×1214 144 KB
py 脚本使用教程
微软账号(工作或学校账号),必须拥有付费的 Microsoft 365 Copilot 商业许可证。普通的 E5 开发者白嫖号、个人账号或只有基础 Office 权限的账号,在最终调用时都会报错提示 You don’t have a valid license
import os
import json
import time
import requests
from fastapi import FastAPI, Request
from fastapi.responses import StreamingResponse
from fastapi.middleware.cors import CORSMiddleware
import uvicorn
# ==========================================
# 0. 网络代理配置 (根据实际情况修改)
# ==========================================
# 如果你在国内,或者连接微软服务器不稳定,请配置你的本地代理端口
# 常见的本地代理端口比如: 7890, 3066, 1080 等。如果不需要代理,请将这两行注释掉(#)
PROXY_URL = 'http://127.0.0.1:7890'
os.environ['http_proxy'] = PROXY_URL
os.environ['https_proxy'] = PROXY_URL
# ==========================================
# 1. 你的 Entra ID (Azure AD) 应用凭证配置
# ==========================================
# 请填入你自己在 Microsoft Entra ID 注册的应用程序信息
TENANT_ID = 'YOUR_TENANT_ID_HERE' # 替换为你的 目录(租户) ID
CLIENT_ID = 'YOUR_CLIENT_ID_HERE' # 替换为你的 应用程序(客户端) ID
app = FastAPI()
# 允许跨域,方便第三方客户端调用
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_methods=["*"],
allow_headers=["*"],
)
ACCESS_TOKEN = None
# ==========================================
# 2. 设备代码流授权 (获取当前登录用户的 Token)
# ==========================================
def get_user_token():
global ACCESS_TOKEN
device_code_url = f"https://login.microsoftonline.com/{TENANT_ID}/oauth2/v2.0/devicecode"
token_url = f"https://login.microsoftonline.com/{TENANT_ID}/oauth2/v2.0/token"
res = requests.post(device_code_url, data={
"client_id": CLIENT_ID,
"scope": "https://graph.microsoft.com/.default offline_access"
}).json()
print("\n" + "="*50)
print(f"⚠️ 请打开浏览器访问: {res['verification_uri']}")
print(f"🔑 并输入此设备代码进行授权: {res['user_code']}")
print("="*50 + "\n")
interval = res['interval']
while True:
time.sleep(interval)
token_res = requests.post(token_url, data={
"grant_type": "urn:ietf:params:oauth:grant-type:device_code",
"client_id": CLIENT_ID,
"device_code": res['device_code']
}).json()
if "access_token" in token_res:
print("✅ 登录成功!已获取 Copilot 访问权限。")
ACCESS_TOKEN = token_res["access_token"]
return ACCESS_TOKEN
elif token_res.get("error") != "authorization_pending":
print("❌ 授权发生错误:", token_res.get("error_description"))
break
# ==========================================
# 3. 核心 API:将 OpenAI 格式转换为 Microsoft Graph 格式
# ==========================================
@app.post("/v1/chat/completions")
async def chat_completions(request: Request):
global ACCESS_TOKEN
if not ACCESS_TOKEN:
return {"error": "Token not ready. Please check server console."}
body = await request.json()
messages = body.get("messages", [])
is_stream = body.get("stream", False)
# 获取用户的最后一次提问内容
user_prompt = messages[-1]["content"] if messages else ""
headers = {
'Authorization': f'Bearer {ACCESS_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
# 步骤 A: 创建一个新的 Copilot 对话线程
conv_url = 'https://graph.microsoft.com/beta/copilot/conversations'
conv_res = requests.post(conv_url, headers=headers, json={})
if conv_res.status_code != 201:
# 拦截错误并包装为假流,防止第三方客户端直接崩溃
def fake_error_stream():
error_msg = f"\n[创建对话失败]: {conv_res.text}\n"
yield f'data: {{"id": "error", "object": "chat.completion.chunk", "model": "m365-copilot", "choices": [{{"index": 0, "delta": {{"content": "{error_msg}"}}, "finish_reason": "stop"}}]}}\n\n'
yield "data: [DONE]\n\n"
return StreamingResponse(fake_error_stream(), media_type="text/event-stream")
conv_id = conv_res.json().get("id")
# 步骤 B: 建立流式连接并发送提问
def generate_stream():
chat_url = f'https://graph.microsoft.com/beta/copilot/conversations/{conv_id}/chatOverStream'
# 微软指定的 Payload 格式 (需要提供时区信息)
payload = {
"message": {
"text": user_prompt
},
"locationHint": {
"timeZone": "Asia/Shanghai"
}
}
try:
with requests.post(chat_url, headers=headers, json=payload, stream=True, timeout=60) as response:
# 处理接口 HTTP 报错
if response.status_code != 200:
error_text = response.text.replace('"', '\\"').replace('\n', ' ')
error_chunk = {
"id": conv_id,
"object": "chat.completion.chunk",
"model": "m365-copilot",
"choices": [{"index": 0, "delta": {"content": f"\n[微软接口报错 {response.status_code}]: {error_text}\n"}, "finish_reason": "stop"}]
}
yield f"data: {json.dumps(error_chunk, ensure_ascii=False)}\n\n"
yield "data: [DONE]\n\n"
return
# 处理正常返回的 SSE 流
for line in response.iter_lines():
if line:
decoded_line = line.decode('utf-8')
# 可以取消下面的注释以在终端查看原始流数据 (Debug 用)
# print(f"DEBUG - 收到流数据: {decoded_line}")
if decoded_line.startswith('data: '):
raw_data = decoded_line[6:]
if raw_data == "[DONE]":
yield "data: [DONE]\n\n"
break
try:
ms_chunk = json.loads(raw_data)
# 拦截流内部报出的异常信息 (例如没有分配 Copilot 许可证)
if "error" in ms_chunk:
err_str = str(ms_chunk["error"]).replace('"', '\\"').replace('\n', ' ')
error_chunk = {
"id": conv_id,
"object": "chat.completion.chunk",
"model": "m365-copilot",
"choices": [{"index": 0, "delta": {"content": f"\n[流内部报错]: {err_str}\n"}, "finish_reason": "stop"}]
}
yield f"data: {json.dumps(error_chunk, ensure_ascii=False)}\n\n"
continue
# 兼容微软不稳定的多层嵌套格式,提取正文内容
content = ""
if "delta" in ms_chunk and isinstance(ms_chunk["delta"], dict):
content = ms_chunk["delta"].get("text", "") or ms_chunk["delta"].get("content", "")
if not content and "message" in ms_chunk and isinstance(ms_chunk["message"], dict):
content = ms_chunk["message"].get("text", "") or ms_chunk["message"].get("content", "")
if not content:
content = ms_chunk.get("text", "") or ms_chunk.get("content", "")
# 包装成标准的 OpenAI API 格式推给客户端
if content:
openai_chunk = {
"id": conv_id,
"object": "chat.completion.chunk",
"model": "m365-copilot",
"choices": [{"index": 0, "delta": {"content": content}, "finish_reason": None}]
}
yield f"data: {json.dumps(openai_chunk, ensure_ascii=False)}\n\n"
except json.JSONDecodeError:
pass
except Exception as e:
error_chunk = {
"id": conv_id,
"object": "chat.completion.chunk",
"model": "m365-copilot",
"choices": [{"index": 0, "delta": {"content": f"\n[本地代理运行异常]: {str(e)}\n"}, "finish_reason": "stop"}]
}
yield f"data: {json.dumps(error_chunk, ensure_ascii=False)}\n\n"
yield "data: [DONE]\n\n"
# 如果客户端请求开启了 Stream 流式,则返回生成器
if is_stream:
return StreamingResponse(generate_stream(), media_type="text/event-stream")
else:
return {"error": "请在你的 AI 客户端 (如 Cherry Studio) 中开启流式输出 (Stream)。此接口暂不支持非流式请求。"}
# ==========================================
# 4. 启动服务监听
# ==========================================
if __name__ == "__main__":
print("🚀 正在启动 M365 Copilot 本地转换代理服务...")
get_user_token()
# 默认监听本地的 12801 端口
uvicorn.run(app, host="127.0.0.1", port=12801, log_level="warning")
第一步:准备环境与配置
- 确保你的电脑上安装了 Python(推荐 3.8 以上版本)。
- 在命令行终端(终端/cmd/PowerShell)中安装依赖库:
pip install fastapi uvicorn requests - 打开
copilot_wrapper.py文件,完成以下修改:
- 代理设置:根据你本地的网络环境修改
PROXY_URL(如http://127.0.0.1:7890)。如果你不需要代理,可以直接注释掉这段代码。 - 凭证设置:填入你在 Microsoft Entra ID (Azure AD) 中注册的应用程序
TENANT_ID和CLIENT_ID。(注意:该应用必须在“身份验证-高级设置”中开启**“允许公共客户端流 (Allow public client flows)”**)。 - 具体的注册步骤和授权API权限自行咨询AI,记住务必选择应用程序权限
image1802×1116 263 KB
第二步:启动代理服务与账号授权
- 在命令行中进入该脚本所在的文件夹,运行:
python copilot_wrapper.py - 终端会打印出一个微软的登录网址(如
https://login.microsoft.com/device)以及一串 字母+数字组成的设备代码。 - 在浏览器中打开该网址,输入代码,并登录你拥有 M365 Copilot 权限的账号进行授权。
- 授权成功后,终端会提示
✅ 登录成功!已获取 Copilot 访问权限。并停留在运行状态(不要关闭这个黑框)。
第三步:在第三方客户端中调用
以 Cherry Studio 为例:
- 打开 Cherry Studio 的设置 → 模型提供商 → 添加一个 自定义 OpenAI 渠道。
- API 地址 (Base URL):填写
http://127.0.0.1:12801。 - API Key:随便填写(例如
sk-test1234,本脚本由于使用微软 Oauth,无需使用此密钥)。 - 添加模型:手动添加一个名为
m365-copilot的模型。 - 极其关键:确保你开启了流式输出 (Stream) 功能。
配置完成后,就可以在聊天窗口选择 m365-copilot 模型,开始与你的企业级超级助理对话了。
--【壹】--:
感谢大佬!
--【贰】--:
之前薅的五年可以吗)
我记得可以用m365网页来着
--【叁】--:
我查了下这个路径是正规路径,但能不能用脚本调用就不知道了,如果你有正版订阅,还是走官方路径调用 API 稳妥
--【肆】--:
期待教程!!大佬还是强的!!!
--【伍】--:
大佬们试一下吧,成功了带我一个
--【陆】--:
马克了,有空试试
--【柒】--:
微软的gpt感觉很降智
--【捌】--:
佬用的是前面楼层说的那些订阅之一嘛
(是的话我也整整看
--【玖】--:
那期待一波大佬的api看看效果,网页是真的降智
--【拾】--:
佬,这个是正规的吗?会不会封号封ip之类的,在公司不知道敢用不
--【拾壹】--:
个人号应该是用不了的,edu号不知道行不行
--【拾贰】--:
image1189×552 67 KB
不是一个渠道,后台都上不去
--【拾叁】--:
前提是你的许可证合规(正规商业许可证),但是国内微软很多地方都有业务,如果你在公司,我劝你慎重。别公司被发函了。
--【拾肆】--:
其实是微软的提示词和特调导致的
--【拾伍】--:
感谢大佬
--【拾陆】--:
之前白嫖的E3不行对吧,要是之前薅的五年的可以的话能否有人踢我一下
--【拾柒】--:
我怕发出来渠道就褒姒了)
在想怎么给大活儿用
--【拾捌】--:
image1224×212 23.8 KB
解决了,我晚点看看怎么处理
--【拾玖】--:
逆向的话
是不是搞公益站会好控制一点
因为 team 车队的阵亡,没法免费养虾,想着微软还有个 M365 Copilot ,想着有没有办法转成兼容 OpenAI API 的代理进行养虾。搜索了一下发现 Microsoft 从 2025 年底开始逐步开放了 Microsoft 365 Copilot Chat API(preview → beta),路径是:
https://graph.microsoft.com/beta/copilot/conversations
https://graph.microsoft.com/beta/copilot/conversations/{id}/chat
https://graph.microsoft.com/beta/copilot/conversations/{id}/chatOverStream ← 这个支持 SSE streaming
如果有 M365 Copilot 许可,是可以直接调用的。贫穷促使我在咸鱼花巨款搞了个 E3 管理员账号账号,折腾了一下午,才知道必须要拥有 Microsoft 365 Copilot 商业许可证才行,单纯的 Office 365 E3 Developer 是不行的。
image1106×411 15.7 KB
image793×277 13.3 KB
被 Gemini 看穿了,现在把脚本分享出来给能用着的佬,或者给佬们提供个思路。
SnowShot_2026-03-13_16-43-08772×1214 144 KB
py 脚本使用教程
微软账号(工作或学校账号),必须拥有付费的 Microsoft 365 Copilot 商业许可证。普通的 E5 开发者白嫖号、个人账号或只有基础 Office 权限的账号,在最终调用时都会报错提示 You don’t have a valid license
import os
import json
import time
import requests
from fastapi import FastAPI, Request
from fastapi.responses import StreamingResponse
from fastapi.middleware.cors import CORSMiddleware
import uvicorn
# ==========================================
# 0. 网络代理配置 (根据实际情况修改)
# ==========================================
# 如果你在国内,或者连接微软服务器不稳定,请配置你的本地代理端口
# 常见的本地代理端口比如: 7890, 3066, 1080 等。如果不需要代理,请将这两行注释掉(#)
PROXY_URL = 'http://127.0.0.1:7890'
os.environ['http_proxy'] = PROXY_URL
os.environ['https_proxy'] = PROXY_URL
# ==========================================
# 1. 你的 Entra ID (Azure AD) 应用凭证配置
# ==========================================
# 请填入你自己在 Microsoft Entra ID 注册的应用程序信息
TENANT_ID = 'YOUR_TENANT_ID_HERE' # 替换为你的 目录(租户) ID
CLIENT_ID = 'YOUR_CLIENT_ID_HERE' # 替换为你的 应用程序(客户端) ID
app = FastAPI()
# 允许跨域,方便第三方客户端调用
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_methods=["*"],
allow_headers=["*"],
)
ACCESS_TOKEN = None
# ==========================================
# 2. 设备代码流授权 (获取当前登录用户的 Token)
# ==========================================
def get_user_token():
global ACCESS_TOKEN
device_code_url = f"https://login.microsoftonline.com/{TENANT_ID}/oauth2/v2.0/devicecode"
token_url = f"https://login.microsoftonline.com/{TENANT_ID}/oauth2/v2.0/token"
res = requests.post(device_code_url, data={
"client_id": CLIENT_ID,
"scope": "https://graph.microsoft.com/.default offline_access"
}).json()
print("\n" + "="*50)
print(f"⚠️ 请打开浏览器访问: {res['verification_uri']}")
print(f"🔑 并输入此设备代码进行授权: {res['user_code']}")
print("="*50 + "\n")
interval = res['interval']
while True:
time.sleep(interval)
token_res = requests.post(token_url, data={
"grant_type": "urn:ietf:params:oauth:grant-type:device_code",
"client_id": CLIENT_ID,
"device_code": res['device_code']
}).json()
if "access_token" in token_res:
print("✅ 登录成功!已获取 Copilot 访问权限。")
ACCESS_TOKEN = token_res["access_token"]
return ACCESS_TOKEN
elif token_res.get("error") != "authorization_pending":
print("❌ 授权发生错误:", token_res.get("error_description"))
break
# ==========================================
# 3. 核心 API:将 OpenAI 格式转换为 Microsoft Graph 格式
# ==========================================
@app.post("/v1/chat/completions")
async def chat_completions(request: Request):
global ACCESS_TOKEN
if not ACCESS_TOKEN:
return {"error": "Token not ready. Please check server console."}
body = await request.json()
messages = body.get("messages", [])
is_stream = body.get("stream", False)
# 获取用户的最后一次提问内容
user_prompt = messages[-1]["content"] if messages else ""
headers = {
'Authorization': f'Bearer {ACCESS_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
# 步骤 A: 创建一个新的 Copilot 对话线程
conv_url = 'https://graph.microsoft.com/beta/copilot/conversations'
conv_res = requests.post(conv_url, headers=headers, json={})
if conv_res.status_code != 201:
# 拦截错误并包装为假流,防止第三方客户端直接崩溃
def fake_error_stream():
error_msg = f"\n[创建对话失败]: {conv_res.text}\n"
yield f'data: {{"id": "error", "object": "chat.completion.chunk", "model": "m365-copilot", "choices": [{{"index": 0, "delta": {{"content": "{error_msg}"}}, "finish_reason": "stop"}}]}}\n\n'
yield "data: [DONE]\n\n"
return StreamingResponse(fake_error_stream(), media_type="text/event-stream")
conv_id = conv_res.json().get("id")
# 步骤 B: 建立流式连接并发送提问
def generate_stream():
chat_url = f'https://graph.microsoft.com/beta/copilot/conversations/{conv_id}/chatOverStream'
# 微软指定的 Payload 格式 (需要提供时区信息)
payload = {
"message": {
"text": user_prompt
},
"locationHint": {
"timeZone": "Asia/Shanghai"
}
}
try:
with requests.post(chat_url, headers=headers, json=payload, stream=True, timeout=60) as response:
# 处理接口 HTTP 报错
if response.status_code != 200:
error_text = response.text.replace('"', '\\"').replace('\n', ' ')
error_chunk = {
"id": conv_id,
"object": "chat.completion.chunk",
"model": "m365-copilot",
"choices": [{"index": 0, "delta": {"content": f"\n[微软接口报错 {response.status_code}]: {error_text}\n"}, "finish_reason": "stop"}]
}
yield f"data: {json.dumps(error_chunk, ensure_ascii=False)}\n\n"
yield "data: [DONE]\n\n"
return
# 处理正常返回的 SSE 流
for line in response.iter_lines():
if line:
decoded_line = line.decode('utf-8')
# 可以取消下面的注释以在终端查看原始流数据 (Debug 用)
# print(f"DEBUG - 收到流数据: {decoded_line}")
if decoded_line.startswith('data: '):
raw_data = decoded_line[6:]
if raw_data == "[DONE]":
yield "data: [DONE]\n\n"
break
try:
ms_chunk = json.loads(raw_data)
# 拦截流内部报出的异常信息 (例如没有分配 Copilot 许可证)
if "error" in ms_chunk:
err_str = str(ms_chunk["error"]).replace('"', '\\"').replace('\n', ' ')
error_chunk = {
"id": conv_id,
"object": "chat.completion.chunk",
"model": "m365-copilot",
"choices": [{"index": 0, "delta": {"content": f"\n[流内部报错]: {err_str}\n"}, "finish_reason": "stop"}]
}
yield f"data: {json.dumps(error_chunk, ensure_ascii=False)}\n\n"
continue
# 兼容微软不稳定的多层嵌套格式,提取正文内容
content = ""
if "delta" in ms_chunk and isinstance(ms_chunk["delta"], dict):
content = ms_chunk["delta"].get("text", "") or ms_chunk["delta"].get("content", "")
if not content and "message" in ms_chunk and isinstance(ms_chunk["message"], dict):
content = ms_chunk["message"].get("text", "") or ms_chunk["message"].get("content", "")
if not content:
content = ms_chunk.get("text", "") or ms_chunk.get("content", "")
# 包装成标准的 OpenAI API 格式推给客户端
if content:
openai_chunk = {
"id": conv_id,
"object": "chat.completion.chunk",
"model": "m365-copilot",
"choices": [{"index": 0, "delta": {"content": content}, "finish_reason": None}]
}
yield f"data: {json.dumps(openai_chunk, ensure_ascii=False)}\n\n"
except json.JSONDecodeError:
pass
except Exception as e:
error_chunk = {
"id": conv_id,
"object": "chat.completion.chunk",
"model": "m365-copilot",
"choices": [{"index": 0, "delta": {"content": f"\n[本地代理运行异常]: {str(e)}\n"}, "finish_reason": "stop"}]
}
yield f"data: {json.dumps(error_chunk, ensure_ascii=False)}\n\n"
yield "data: [DONE]\n\n"
# 如果客户端请求开启了 Stream 流式,则返回生成器
if is_stream:
return StreamingResponse(generate_stream(), media_type="text/event-stream")
else:
return {"error": "请在你的 AI 客户端 (如 Cherry Studio) 中开启流式输出 (Stream)。此接口暂不支持非流式请求。"}
# ==========================================
# 4. 启动服务监听
# ==========================================
if __name__ == "__main__":
print("🚀 正在启动 M365 Copilot 本地转换代理服务...")
get_user_token()
# 默认监听本地的 12801 端口
uvicorn.run(app, host="127.0.0.1", port=12801, log_level="warning")
第一步:准备环境与配置
- 确保你的电脑上安装了 Python(推荐 3.8 以上版本)。
- 在命令行终端(终端/cmd/PowerShell)中安装依赖库:
pip install fastapi uvicorn requests - 打开
copilot_wrapper.py文件,完成以下修改:
- 代理设置:根据你本地的网络环境修改
PROXY_URL(如http://127.0.0.1:7890)。如果你不需要代理,可以直接注释掉这段代码。 - 凭证设置:填入你在 Microsoft Entra ID (Azure AD) 中注册的应用程序
TENANT_ID和CLIENT_ID。(注意:该应用必须在“身份验证-高级设置”中开启**“允许公共客户端流 (Allow public client flows)”**)。 - 具体的注册步骤和授权API权限自行咨询AI,记住务必选择应用程序权限
image1802×1116 263 KB
第二步:启动代理服务与账号授权
- 在命令行中进入该脚本所在的文件夹,运行:
python copilot_wrapper.py - 终端会打印出一个微软的登录网址(如
https://login.microsoft.com/device)以及一串 字母+数字组成的设备代码。 - 在浏览器中打开该网址,输入代码,并登录你拥有 M365 Copilot 权限的账号进行授权。
- 授权成功后,终端会提示
✅ 登录成功!已获取 Copilot 访问权限。并停留在运行状态(不要关闭这个黑框)。
第三步:在第三方客户端中调用
以 Cherry Studio 为例:
- 打开 Cherry Studio 的设置 → 模型提供商 → 添加一个 自定义 OpenAI 渠道。
- API 地址 (Base URL):填写
http://127.0.0.1:12801。 - API Key:随便填写(例如
sk-test1234,本脚本由于使用微软 Oauth,无需使用此密钥)。 - 添加模型:手动添加一个名为
m365-copilot的模型。 - 极其关键:确保你开启了流式输出 (Stream) 功能。
配置完成后,就可以在聊天窗口选择 m365-copilot 模型,开始与你的企业级超级助理对话了。
--【壹】--:
感谢大佬!
--【贰】--:
之前薅的五年可以吗)
我记得可以用m365网页来着
--【叁】--:
我查了下这个路径是正规路径,但能不能用脚本调用就不知道了,如果你有正版订阅,还是走官方路径调用 API 稳妥
--【肆】--:
期待教程!!大佬还是强的!!!
--【伍】--:
大佬们试一下吧,成功了带我一个
--【陆】--:
马克了,有空试试
--【柒】--:
微软的gpt感觉很降智
--【捌】--:
佬用的是前面楼层说的那些订阅之一嘛
(是的话我也整整看
--【玖】--:
那期待一波大佬的api看看效果,网页是真的降智
--【拾】--:
佬,这个是正规的吗?会不会封号封ip之类的,在公司不知道敢用不
--【拾壹】--:
个人号应该是用不了的,edu号不知道行不行
--【拾贰】--:
image1189×552 67 KB
不是一个渠道,后台都上不去
--【拾叁】--:
前提是你的许可证合规(正规商业许可证),但是国内微软很多地方都有业务,如果你在公司,我劝你慎重。别公司被发函了。
--【拾肆】--:
其实是微软的提示词和特调导致的
--【拾伍】--:
感谢大佬
--【拾陆】--:
之前白嫖的E3不行对吧,要是之前薅的五年的可以的话能否有人踢我一下
--【拾柒】--:
我怕发出来渠道就褒姒了)
在想怎么给大活儿用
--【拾捌】--:
image1224×212 23.8 KB
解决了,我晚点看看怎么处理
--【拾玖】--:
逆向的话
是不是搞公益站会好控制一点

