假设我在我的Outlook加载项(使用Office.js)中跟随代码的撰写形式运行代码:
<?php
include("YOUR PHP CONNECT FILE");
$query = "SELECT sum(new_customers) AS new, sum(old_customers) AS old, region FROM daily GROUP BY region";
$exec = mysqli_query($YOURCONNECTIONVARIABLE ,$query);
?>
<!DOCTYPE html>
<head>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load('visualization', '1', {packages: ['corechart', 'bar']});
google.charts.setOnLoadCallback(drawMaterial);
function drawMaterial() {
var data = google.visualization.arrayToDataTable([
['Region', 'New Customers'],
<?php
while($row = mysqli_fetch_array($exec)){
echo "['".$row[2]." [".$row[0]."]', ".$row[1]."],";
}
?>
]);
var options = {
title: 'Country wise new and returned visitors',
bars: 'horizontal'
};
var material = new google.charts.Bar(document.getElementById('barchart'));
material.draw(data, options);
}
</script>
</head>
<body>
<div id="barchart" style="width: 100%; height: 40em;"></div>
</body>
</html>
我知道,它实际上已保存在事件中。
现在有很多关于这些自定义属性的问题:
但这些是否与扩展属性有关?
这些属性是否可通过Outlook REST API或Microsoft Graph以某种方式访问?
我可以使用带有基于这些属性的过滤器的Microsoft Graph创建推送通知订阅吗? (我知道我可以基于扩展属性)
如果上述问题的答案是&#34; no&#34;,并且只能通过创建它们的加载项访问自定义属性,是否有办法为事件创建扩展属性来自加载项,即使它没有保存?
解释我为什么要问 - 我正在创建一个加载项,它允许连接&#34;与我们的第三方系统约会,并使该约会与我们的对象保持同步。
因此,当在撰写表单上单击按钮时,我:
const item = Office.context.mailbox.item;
item.loadCustomPropertiesAsync((result) => {
const props = result.value;
const testProp = props.get("my_prop");
console.log("CUSTOM_PROP", testProp);
props.set("my_prop", "test_value");
props.saveAsync((saveResult) =>
console.log("SAVE_CUSTOM_PROP", saveResult));
});
,首次使用加载项时,用户进行身份验证,并为使用扩展属性的事件创建推送通知订阅,以便从Outlook同步到我们的系统。
它在OWA上运行良好,但现在我们确实需要支持桌面,因此出现了两个主要问题:
Outlook for Mac:没有event-id
方法,因此无法获取事件saveAsync
,我正在考虑添加一些自定义属性,然后让推送通知告知我们的系统,创建了一个需要与系统同步的事件。
Outlook for PC:有id
方法,但在本地保存约会时执行回调,而不是在服务器上保存,因此我无法确定事件的确切时间已创建,我可以对该事件进行一些Microsoft Graph调用。
回答我的第一个问题,和/或有关我的用例的任何提示都非常受欢迎。
答案 0 :(得分:3)
"{type} {guid} Name {name}"
格式。答案 1 :(得分:2)
TL; DR;
是的,可以使用REST API读取Office.js
api loadCustomPropertiesAsync
设置的自定义属性
您需要创建一个类似于
string addinManifestId = "<your manifest guid here>";//lower cases
string prop = @"String {00020329-0000-0000-C000-000000000046} Name"+ string.Format(" cecp-{0}", addinManifestId );
var url = $"<apiEndpoint>/messages/<youritemid>?$expand=SingleValueExtendedProperties($filter=PropertyId eq '{propertyname}')";
更多信息
此处提供了文档https://msdn.microsoft.com/en-us/library/hh968549(v=exchg.80).aspx
当我需要处理加载项Keluro的“已发送邮件”时,我遇到了类似的问题。 我使用REST API上的Web钩子实现了与您的方法非常接近的东西。据我所知,这是处理已发送物品的唯一方法。 考虑提出这个问题 https://officespdev.uservoice.com/forums/224641-feature-requests-and-feedback/suggestions/10964871-add-itemsend-event-so-add-in-can-cancel-email