sharePoint在线计数来自office365的未读邮件

sharePoint online count unread message from office365

本文关键字:office365 在线 sharePoint      更新时间:2023-09-26

作为一个旨在显著改善SharePoint Online网站视觉效果的项目的一部分,我有点停滞不前。在左侧条幅的主页上,用户希望查看他们在Office365中的未读邮件数。

我在母版页中创建了一个区域来放置结果。我认为Rest API用来做这件事:

$.ajax ({
    type: "GET",
    url: " https://outlook.office365.com/ews/odata/Me/Folders/Inbox",
    dataType : "json",
    success : function (resp) {
        // count unread messages 
    },
    error : function (e) {
        alert (' Error121212 :' + JSON.stringify (e));
    }
 })

不幸的是,我遇到了一个类似跨域的错误。我尝试使用JSONP,但它也不起作用(未捕获的语法错误意外标记)。

你能告诉我这是不是一个好的做法吗?我觉得无论如何我都必须找到一种技术来进行身份验证。(在JSONP的情况下,我有一个弹出窗口,询问我身份验证,然后问题显然发生在回调上)。。。

我想避免开发需要典型部署Wsp的类型。。。

提前感谢您的帮助。

ajax请求的URL似乎不正确。通过API获取收件箱消息的URL为:https://outlook.office365.com/api/v1.0/me/folders/inbox/messages

获得响应后,可以使用简单的for循环计算IsRead属性设置为false的对象数,并显示该计数。

这里的问题与CORS以及浏览器如何拒绝处理跨域请求有关。为了解决这个问题,通常你会选择

  • 更改远程服务器上的响应标头-此处不是选项
  • 使用某种代理来处理请求-这里是SharePoint应用程序的用武之地

我知道你规定你想避免使用WSP风格的部署,但根本没有办法,你必须使用SharePoint应用程序模型

这篇文章对回答您的问题有很大帮助,但要完成,基本步骤如下

  1. 在Visual Studio中创建SharePoint托管的应用程序
  2. 在应用程序清单中,您需要使用AppManifest部分定义与远程主机(在本例中为outlook.office365.com的主机)的信任关系

  3. 使用SP.RequestExecutor.executor代表提出请求