Office365 Office 365创建草稿回复邮件rest API

Office365 Office 365创建草稿回复邮件rest API,office365,Office365,对于Office 365创建草稿回复消息rest API“/messages/{message_id}/createreply”,根据Office 365文档,所需的请求正文参数为“comment” 我尝试使用“POST/messages/{message_id}/createreply”API创建一个草稿回复,有效负载为: { “评论”:“Fanny,Randi,如果项目获得批准,请说出团队的名字好吗?” } API给出了以下错误: { “错误”:{ “代码”:“RequestBodyRea

对于Office 365创建草稿回复消息rest API“/messages/{message_id}/createreply”,根据Office 365文档,所需的请求正文参数为“comment”

我尝试使用“POST/messages/{message_id}/createreply”API创建一个草稿回复,有效负载为:

{ “评论”:“Fanny,Randi,如果项目获得批准,请说出团队的名字好吗?” }

API给出了以下错误:

{ “错误”:{ “代码”:“RequestBodyRead”, “消息”:“请求负载中的参数‘Comment’不是操作‘CreateReply’的有效参数。” } }


我是否有任何错误,或者这是Office 365创建草稿回复API的已知问题?

我认为创建草稿回复API没有任何问题。 我能够使用我在租户中注册的本机客户端(注册了mail.readwrite作用域)和使用ADAL的PowerShell脚本测试此API调用,ADAL执行身份验证和REST调用

下面是脚本:

Add-Type -Path "..\ADAL\Microsoft.IdentityModel.Clients.ActiveDirectory.dll";

$output = ".\Output.txt"
$accessToken = ".\Token.txt"

$clientId = "<AppID>";
$tenantId = "<Tenant or Common>";
$resourceId = "https://outlook.office.com"
$redirectUri = new-object System.Uri("<Reply URL>")
$login = "https://login.microsoftonline.com"

$authContext = New-Object Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext @(("{0}/{1}" -f $login,$tenantId), $false);

$authenticationResult = $authContext.AcquireToken($resourceId,$clientID,$redirectUri);

($token = $authenticationResult.AccessToken) | Out-File $accessToken


$headers = @{ 
    "Authorization" = ("Bearer {0}" -f $token);
    "Content-Type" = "application/json";
}

$body = @{
    Comment= 'This is my comment'
}

$bodyJSON = $body | ConvertTo-Json

Invoke-RestMethod -Method Post -Uri ("{0}/api/beta/me/messages/<message id>/createreply" -f $resourceId) -Headers $headers -Body $bodyJSON -OutFile $output
添加类型-路径“.\ADAL\Microsoft.IdentityModel.Clients.ActiveDirectory.dll”;
$output=“.\output.txt”
$accessToken=“.\Token.txt”
$clientId=“”;
$tenantId=“”;
$resourceId=”https://outlook.office.com"
$redirectUri=新对象系统.Uri(“”)
$login=”https://login.microsoftonline.com"
$authContext=新对象Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext@(“{0}/{1}”-f$login,$tenantId),$false);
$authenticationResult=$authContext.AcquireToken($resourceId、$clientID、$redirectUri);
($token=$authenticationResult.AccessToken)|输出文件$AccessToken
$headers=@{
“授权”=(“持票人{0}”-f$代币);
“内容类型”=“应用程序/json”;
}
$body=@{
评论='这是我的评论'
}
$bodyJSON=$body |转换为Json
调用RestMethod-Method-Post-Uri(“{0}/api/beta/me/messages//createreply”-f$resourceId)-Headers$Headers-Body$bodyJSON-OutFile$output
我能够用这段代码从API获得有效的响应。我有点犹豫是否要分享我的输出,我真的不知道什么是敏感的,什么不是敏感的,但我相信错误来自您的代码制定POST请求的方式。你能分享你的代码吗


我希望这有帮助

我认为创建草稿回复API没有任何问题。 我能够使用我在租户中注册的本机客户端(注册了mail.readwrite作用域)和使用ADAL的PowerShell脚本测试此API调用,ADAL执行身份验证和REST调用

下面是脚本:

Add-Type -Path "..\ADAL\Microsoft.IdentityModel.Clients.ActiveDirectory.dll";

$output = ".\Output.txt"
$accessToken = ".\Token.txt"

$clientId = "<AppID>";
$tenantId = "<Tenant or Common>";
$resourceId = "https://outlook.office.com"
$redirectUri = new-object System.Uri("<Reply URL>")
$login = "https://login.microsoftonline.com"

$authContext = New-Object Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext @(("{0}/{1}" -f $login,$tenantId), $false);

$authenticationResult = $authContext.AcquireToken($resourceId,$clientID,$redirectUri);

($token = $authenticationResult.AccessToken) | Out-File $accessToken


$headers = @{ 
    "Authorization" = ("Bearer {0}" -f $token);
    "Content-Type" = "application/json";
}

$body = @{
    Comment= 'This is my comment'
}

$bodyJSON = $body | ConvertTo-Json

Invoke-RestMethod -Method Post -Uri ("{0}/api/beta/me/messages/<message id>/createreply" -f $resourceId) -Headers $headers -Body $bodyJSON -OutFile $output
添加类型-路径“.\ADAL\Microsoft.IdentityModel.Clients.ActiveDirectory.dll”;
$output=“.\output.txt”
$accessToken=“.\Token.txt”
$clientId=“”;
$tenantId=“”;
$resourceId=”https://outlook.office.com"
$redirectUri=新对象系统.Uri(“”)
$login=”https://login.microsoftonline.com"
$authContext=新对象Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext@(“{0}/{1}”-f$login,$tenantId),$false);
$authenticationResult=$authContext.AcquireToken($resourceId、$clientID、$redirectUri);
($token=$authenticationResult.AccessToken)|输出文件$AccessToken
$headers=@{
“授权”=(“持票人{0}”-f$代币);
“内容类型”=“应用程序/json”;
}
$body=@{
评论='这是我的评论'
}
$bodyJSON=$body |转换为Json
调用RestMethod-Method-Post-Uri(“{0}/api/beta/me/messages//createreply”-f$resourceId)-Headers$Headers-Body$bodyJSON-OutFile$output
我能够用这段代码从API获得有效的响应。我有点犹豫是否要分享我的输出,我真的不知道什么是敏感的,什么不是敏感的,但我相信错误来自您的代码制定POST请求的方式。你能分享你的代码吗


我希望这有帮助

你能试试这个吗。我自己就试过了,看起来效果不错。你也可以分享你的代码吗?这里是我所做的截图:是的,使用Microsoft Graph它工作得很好。但我正在开发一个使用Office 365 rest API的集成连接器。所以我只需要使用Office 365 REST API执行此任务。您可以尝试使用。我自己就试过了,看起来效果不错。你也可以分享你的代码吗?这里是我所做的截图:是的,使用Microsoft Graph它工作得很好。但我正在开发一个使用Office 365 rest API的集成连接器。因此,我只需要使用Office 365 REST API执行此任务。