reactjs - React/Graph - 将电子邮件移动到 Outlook Web 加载项中的新文件夹
问题描述
如标题所述,我正在尝试将电子邮件移至当前邮箱中的新文件夹。
我使用 Yeoman 创建了一个 React Outlook Web 插件项目,但由于我是新手,所以我很难找到正确的方法来做这件事。我发现要在基于 ajax 的加载项中使用 Graph,我可以获得一个回调令牌并使用以下代码调用其余 url:
Office.context.mailbox.getCallbackTokenAsync({ isRest: true }, function (result) {
if (result.status === "succeeded") {
var accessToken = result.value;
// Use the access token.
getCurrentItem(accessToken);
} else {
// Handle the error.
}
});
function getCurrentItem(accessToken) {
var itemId = getItemRestId();
var restHost = Office.context.mailbox.restUrl;
var moveMessageUrl = restHost + '/v2.0/me/messages/' + itemID + '/move';
$.ajax({
url: moveMessageUrl,
type: "POST",
dataType: 'json',
headers: { 'Authorization': 'Bearer ' + accessToken },
data: { 'destinationId': 'notes' },
contentType: 'application/json'
}).done(function(item){
console.log("Success");
}).fail(function(error){
console.log("Error");
});
}
我如何在反应中实现这一点?
我努力了
click = async () => {
Office.context.mailbox.getCallbackTokenAsync({ isRest: true }, function (result) {
if (result.status === "succeeded") {
App.setState({accessToken: result.value});
console.log(accessToken);
App.getCurrentItem();
} else {
// Handle the error.
}
});
getCurrentItem = async () => {
var itemId = getItemRestId();
var restHost = Office.context.mailbox.restUrl;
var moveMessageUrl = restHost + '/v2.0/me/messages/' + itemID + '/move';
$.ajax({
url: moveMessageUrl,
type: "POST",
dataType: 'json',
headers: { 'Authorization': 'Bearer ' + accessToken },
data: { 'destinationId': 'notes' },
contentType: 'application/json'
}).done(function(item){
console.log("Success");
}).fail(function(error){
console.log("Error");
});
}
但两者都不是setSate
或不在getCurrentItem
“this”或“App”中,如this.setSate
. 另外,当我尝试像 js 代码一样离开它而不设置状态时,只是传递一个变量,getCurrentItem
找不到函数。我也试过
getCurrentItem = (accessToken) = async () => {...
也许应该以完全不同的方式完成,我愿意倾听和尝试。
任何帮助都将受到欢迎!
我咨询过的参考资料:
https://docs.microsoft.com/en-us/office/dev/add-ins/outlook/authentication
https://docs.microsoft.com/en-us/graph/api/message-move?view=graph-rest-1.0&tabs=http
https://docs.microsoft.com/en-us/outlook/rest/#outlook-rest-api-via-microsoft-graph
https://docs.microsoft.com/en-us/office/dev/add-ins/outlook/use-rest-api
https://docs.microsoft.com/en-us/office/dev/add-ins/tutorials/outlook-tutorial
https://docs.microsoft.com/en-us/office/dev/add-ins/design/using-office-ui-fabric-react