我正在寻找一些帮助格式化Microsoft Graph API中的架构扩展数据的帮助。使用此正文,我已经能够通过代码和通过Graph Explorer成功发送Office 365消息:
nrs <- regmatches(x, gregexpr("[[:digit:]]+", x))
nrs <- as.numeric(unlist(nrs))
i <- 1:length(nrs); i <- i[(i%%2)==1]
for(h in i){print(paste0(nrs[h],'-',nrs[h+1],'%'))}
[1] "5-10%"
[1] "20-20%"
我创建了一个架构扩展并将其提升为“可用”状态。我可以查询扩展名以验证它是否可用并获得此响应正文:
{
"message": {
"subject": "Test Subject",
"body": {
"contentType": "Text",
"content": "Test Body "
},
"toRecipients": [
{
"emailAddress": {
"address": "foo@email.com"
}
}
]
}
}
到目前为止,我还无法将扩展数据附加到新消息中。我尝试过这样格式化我的请求正文:
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#schemaExtensions",
"value": [
{
"id": "extc5bnq6uk_TestExtension",
"description": "Test Extension",
"targetTypes": [
"Message"
],
"status": "Available",
"owner": "mysecretclienttenantgoeshere",
"properties": [
{
"name": "ValueOne",
"type": "String"
},
{
"name": "ValueTwo",
"type": "String"
}
]
}
]
}
并这样:
{
"message": {
"subject": "Test Subject",
"body": {
"contentType": "Text",
"content": "Test Body "
},
"toRecipients": [
{
"emailAddress": {
"address": "foo@email.com"
}
}
],
"extc5bnq6uk_TestExtension": {
"ValueOne": "TestValue",
"ValueTwo": "TestValue"
}
}
}
两种格式都返回带有响应正文的400代码:
{
"message": {
"subject": "Test Subject",
"body": {
"contentType": "Text",
"content": "Test Body "
},
"toRecipients": [
{
"emailAddress": {
"address": "foo@email.com"
}
}
],
"extensions":[
{
"extc5bnq6uk_TestExtension" : {
"ValueOne" : "TestValue"
"ValueTwo" : "TestValue"
}
}
]
}
}
我要在图形浏览器中发布到该URL:
以及代码中的“ messages”和“ sendMail”端点。
答案 0 :(得分:1)
我在文档的Known Limitations中找到了答案。某些资源类型(包括消息)必须分两个阶段完成,一个是初始发布,然后是后续补丁。
创建消息,然后使用此JSON修补返回有效的响应。
{
"extc5bnq6uk_TestExtension": {
"ValueOne": "Test Value One",
"ValueTwo": "Test Value Two"
}
}
不幸的是,消息上的模式扩展的另一个限制是它们不能用于过滤消息,这是我最终追求的目标。
过滤架构扩展属性(使用$ filter 表达)不支持Outlook实体类型-联系人, 活动,消息或帖子。
答案 1 :(得分:0)
杰夫
根据您发布的问题,您已经成功创建了schemaExtension。我认为您想使用此schemaExtension发送电子邮件,但是当您使用此schemaExtension发送电子邮件时,我们会在响应中获得400代码。
根据我的测试,我认为我们可以使用请求正文作为打击。
1。创建如下所示的schemaExtension:
{
"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#schemaExtensions/$entity",
"id":"{extensionId}",
"description":"sample description",
"targetTypes":[
"Message"
],
"status":"Available",
"owner":"{owner id}",
"properties":[
{
"name":"p1",
"type":"String"
},
{
"name":"p2",
"type":"String"
}
]
}
POST https://graph.microsoft.com/v1.0/me/messages
{
"message":{
"subject":"Meet for lunch?",
"body":{
"contentType":"Text",
"content":"The new cafeteria is open."
},
"toRecipients":[
{
"emailAddress":{
"address":"{toRecipients email address}"
}
}
],
"extensions":[
{
"@odata.type":"Microsoft.Graph.OpenTypeExtension",
"extensionName":"{extensionName}",
"p1":"Wingtip Toys",
"p2":"10000"
}
]
},
"saveToSentItems":"false"
}