Google apps script 如何通过Google Apps脚本在MS Graph Api中创建订阅
目标:将新文件夹添加到根目录时收到通知 我所做的:我阅读并尝试设置订阅Google apps script 如何通过Google Apps脚本在MS Graph Api中创建订阅,google-apps-script,microsoft-graph-api,webhooks,onedrive,subscription,Google Apps Script,Microsoft Graph Api,Webhooks,Onedrive,Subscription,目标:将新文件夹添加到根目录时收到通知 我所做的:我阅读并尝试设置订阅 let url = "https://graph.microsoft.com/v1.0/subscriptions"; let payload = { "changeType": "update", "notificationUrl": `https://script.google.com/macros/d/${ScriptApp.getSc
let url = "https://graph.microsoft.com/v1.0/subscriptions";
let payload = {
"changeType": "update",
"notificationUrl": `https://script.google.com/macros/d/${ScriptApp.getScriptId()}/usercallback`,
"resource": "me/drive/root",
"expirationDateTime": "2021-03-31T14:33:45Z"
}
let option = {
"headers": {
Authorization: "Bearer " + access_token
},
"method": "POST",
"contentType": "application/json",
"payload": JSON.stringify(payload),
"muteHttpExceptions": true
};
let response = URlFetchApp.fetch(url, option);
函数setSubscription()
函数doPost(e)
但我得到一个错误,上面写着“通知端点必须以200 OK响应验证请求。”
我想不出一个问题。我尝试了很多我喜欢的通知URL模式
"notificationUrl": "ScriptApp.getService().getUrl()",
但我得到了相同的错误或错误“响应必须完全匹配validationToken查询参数”
我不确定doPost(e)中的返回是否正确
我的成就:获取用户名、在OneDrive中获取文件(项目)以及获取订阅(当然,没有显示订阅)
问题:
有人能帮我吗???您是否遵循了中的说明?尽管我不确定在您使用
https://script.google.com/macros/d/${ScriptApp.getScriptId()}/usercallback
作为Web应用的URL,ScriptApp.getScriptId()的值
不是部署ID。例如,直接使用Web应用URL中的部署ID如何?顺便说一句,当你重新部署Web应用程序时,请小心,谢谢你的回复,Lamblichus。是的,我读过并试着遵循它,但我不知道如何用“HTTP200OK”、“text/plain”和“validationToken”来响应。正如我前面提到的,我使用了ContentService.createTextOutput()并附加了“200”和“validationToken”并将mimetype设置为text,然后我只返回这个。谢谢你的帮助,Tanaike。我今天要试试!我稍后会再回复@Tanaike我试过了,但当我遇到同样的错误时,“通知端点必须以200 OK响应验证请求”。我认为问题在于doPost(e)函数中的返回。我不确定我返回的是什么。
"notificationUrl": "ScriptApp.getService().getUrl()",