简介:
我们将在此解释如何使用Microsoft Graph连接到Microsoft Sharepoint。
此博客与您目前可能遇到的完全不同。
技术正在以非常快的速度变化,您可以访问网络上的某些系统的方式以及它们的身份验证机制也在发生变化。
我有一个将SharePoint与sappo集成的要求,在我从Dilip
看到这个博客之前,我一直一无所知https://blogs.sap.com/2018/08/26/integrate-sharepoint-using-sap-pi/#
一个非常好的博客,它解释了如何在SharePoint上执行基本操作。
问题:我们依靠UDF通过OAUTH获取accessToken2.0.
SharePoint使用OAUTH 2.0身份验证机制,在该机制中,您可以生成客户端id和客户端密码。然后从Sharepoint Auth url获取accessToken。
https://accounts.accesscontrol.windows.net/{TenantID}/tokens/OAuth/2
这个机制的问题是SAP PO REST Sender adapter不支持OAuth参数"resource",这是Sharepoint身份验证所必需的,所以我们需要通过UDF获取AccessTokens!!
解决方案:
我们有两种连接到Sharepoint的方法
使用Microsoft Graph的优点:
a)您可以使用SAP PO Receiver Rest adapter for Oauth,而不必担心访问令牌的任何自定义项,买云服务器,并让SAP PO来处理它。
b)例如,查询Sharepoint的选项非常多。我必须从Sharepoint读取一个excel文件,移动大数据,比较便宜的云服务器,Sharepoint的restapi将该文件作为二进制文件返回给我!!!没有其他方法。
我转到了Microsoft Graph,现在我可以直接查询excel表中的数据了!没有任何Java映射或处理大型二进制文件的麻烦…你只得到你想要的行数!!!
c)在ODATA上工作,非常方便用户使用!
d)为您提供产品范围的客户id和客户机密…这意味着如果您直接使用Sharepoint的API,您生成的客户id和客户机密仅对Sharepoint上的特定"站点"有效,不会在任何其他站点上工作!但是使用为Microsoft Graph生成的客户端id客户端密码,您可以使用相同的令牌访问整个SHAREPOINT!!太神奇了!!
我可以继续,但需要保持这个博客简短。
我们怎么做!!
步骤1)生成客户id客户机密。
按照本博客中的步骤操作,您将拥有您的客户id和客户机密
https://tsmatz.wordpress.com/2016/10/07/application-permission-with-v2-endpoint-and-microsoft-graph/
第2步)一旦您获得管理员同意,打开邮递员并尝试查看您是否能够获得访问权限令牌
发帖子到https://login.microsoftonline.com/{你的公司}。onmicrosoft.com/oauth2/v2.0/令牌
例如,如果您的sharepoint帐户ABC.sharepoint.com那么就用ABC
内容类型:application/x-www-form-urlencoded
grant替换url中的yourCompany_类型:客户端凭据客户号:YYYYYYYYYYY客户_秘密:XXXXXXXX范围:https://graph.microsoft.com/.default
步骤3)将Microsoft登录和Microsoft Graph证书导入系统
Microsoft Graph URL
https://graph.microsoft.com
还有一个Microsoft Graph developer门户,您可以通过公司的凭据登录并实时测试ODATA查询!!
现在您只需配置其余的接收通道!!!
URL标签
我在这里查询它的项目列表。我的Microsoft Graph URL是
https://graph.microsoft.com/v1.0/sites/{你的公司}。sharepoint.com,{site id}/lists/{list id}/items?filter=((fields/JobNumber ne'1234')&expand=fields(select=JobNumber,id)
通过SAP PO进行端到端邮递员测试得到的结果是
在这种情况下请求映射并不重要响应映射是
第5步)理解ODATA查询以及它是如何进行的同样重要,您不会发现关于如何获得这些网站id和名单id等,这可能是真的令人沮丧。这是我通过反复试验发现的!
查询https://graph.microsoft.com/v1.0/sites/{site id}/列表/{list id}/项?filter=((fields/JobNumber ne'1234'))&expand=fields(select=JobNumber,id)
有两个主要部分"站点id"和"列表id"
a)要获取站点id,永久免费自助建站平台,请访问Microsoft Graph Developer portal
https://developer.microsoft.com/en-us/graph/graph-explorer#
现在SharePoint的工作原理是站点的概念,或者说在SharePoint的共享点或页面下的子门户,您现在可以在其中存储文件、图像或创建"列表"输入查询
https://graph.microsoft.com/v1.0/sites/{你的公司名称}。sharepoint.com:/sites/{YourSharepointSite}/
您将得到类似于
的内容这将成为您的站点id
b)现在我们需要得到我们正在处理的列表,一个sharepoint站点可以有多个列表。
再次运行查询
https://graph.microsoft.com/v1.0/sites/{site id}/lists/
这会给你列表id的列表,你可以拿起列表id准备出发!!
结论:我们学习了如何通过Microsoft Graph查询Sharepoint(这反过来又将ODATA查询转换为共享Point的REST API,trustdata大数据,您不必担心数以百计的API和函数)。
Microsoft Graph和Sharepoint目前支持ODATA 2.0,ODATA 2.0具有广泛的功能。
Microsoft示例图形url是我在一些开发过程中为您创建的。
用于阅读Excel工作表的行和列
https://graph.microsoft.com/v1.0/sites/{site id}/drive/items/{excelSheetFileID}/workbook/worksheets/Sheet1/UsedRange?$select=值
如何获取驱动器??
https://graph.microsoft.com/v1.0/sites/{site id}/drives/
如何获取Excel表id??
https://graph.microsoft.com/v1.0/sites/{site id}/drives/{drive id}/root/children