• SharePoint 非365版本接入简要笔记


    Before of version sharePoint 365

    强烈建议参考:Site Data WebService Site ,由于实际业务需求,我这边只会操作 [涉及常用网站内容讯息-ms-sitedats](MS-SITEDATS]: Message Processing Events and Sequencing Rules | Microsoft Docs)

    零、基础讯息

    下属讯息为拟造讯息

    基础SharePoint地址(baseUrl): http://coffeeandice

    二级站点(sec-site): test

    用户讯息(user-msg): ringo

    基础主页创建的文件夹: test1、test2

    二级站点创建的文件夹: demo1、demo2

    一、获取文档流程

    整体的目标是为了获取已授权的网站下的文档内容,同时提供下载的方案。

    1、获取次级网站内容

    利用 SiteData#GetWeb 获取次级网站内容

    _sWebMetadata 主要获取当前输入地址的内容,用作参考。

    ArrayOf_sWebWithTime 主要获取次级已授权的内容。

    通常是为了获取已授权的网站内容

    例如:
    1、输入网站:
      http://coffeeandice
    
    2、响应:
      _sWebMetadata :关于http://coffeeandice 内容讯息
      ArrayOf_sWebWithTime: 展示子页面url —— http://coffeeandice/test
      
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    2、获取特定网站文档列表

    利用SiteData#getListCollection 获取网站的目录讯息

    通常是获取资源列表

    例如:
    1、输入网站
     http://coffeeandice
     
    2、响应
    _sList: 通常我们只需需要筛选baseType 为 DocumentLibrary 即可。
      test1、test2
    
    3、额外:
    这里通常为中文会出现title不匹配问题,其实我们只需要过滤出 DefaultViewUrl含有AllItems.aspx的字符内容即可。
     3.1、需要排除的元素
       SitePages、SiteAssets、Style Library、Shared Documents(这个手动添加)
     3.2、需要必带的手动元素
     Shared Documents ,这个元素为每个网站必带的默认文件列表
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    3、获取特定网站特定文档列表目录及文件内容

    利用SiteData#enumerateFolder 获取特定列表目录及其文件内容

    通常是获取文件夹和文件

    例如:
    1、输入网站
     http://coffeeandice
     
    2、输入列表
     test
     
    3、响应
         prop        value
     (1) url         test/Forms
         isFolder    true
         
     (2) url         test/test.txt
         isFolder    false
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    4、下载特定内容

    这里涉及version 和 copy 的端点内容。

    4.1、获取文件版本讯息

    利用Versions#getVersions 获取特定文件的版本讯息内容

    例如:
    1、输入内容
    http://coffeeandice
    
    2、输入内容
     http://coffeeandice/test/demo1/demo.txt
     
    3、响应内容
     一个可解析的xml结构,我们可以从中提取出当前版本的内容,一般只取第一个版本
     
     最后获取节点的url属性:  http://coffeeandice/test/demo1/demo.txt
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    4.2、获取文件

    利用Copys#GetItem 获取特定文档字节流内容

    例如:
    1、输入内容
    http://coffeeandice
    
    2、输入内容
     http://coffeeandice/test/demo1/demo.txt
     
    3、响应内容
     获取Holder 转换为文件即可。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    二、About SiteData(wsdl)

    整体上就是关于网站内容部分的web service 端点

    0、初始化讯息

    wsdl:init SiteDataSoap

    full wsdl : full WSDL

    1、获取Web讯息 (GetWeb)

    GetWeb操作用于获取有关上下文站点的元数据信息、所有子站点的信息、列表和角色定义。

    wsdl:GetWeb Web Service Struct

    通常我们只需要提取_sWebMetadata 结构内的内容即可,这里包含着我们需要的已授权站点信息,通常与我们传递的上下文讯息有关。

    eg:例如入口的 url的 baseUrl,可以获取到 sec-site :http://coffeeandice/test

    2、获取Web内上下文讯息(GetListCollection

    返回有关上下文网站的所有列表的常规信息。

    wsdl:GetListCollection WEbeb Service Struct

    通常我们只需要提取 vLists 类型为ArrayOf_sList 结构的内容即可

    3、获取列表讯息(GetList)

    返回给定列表的常规信息、字段架构和访问权限。

    wsdl:GetList Web Service Struct

    通常我们只需要提取 _sListMetadata 即可,用于获取到列表的内容讯息。 值得注意的是需要输入的是列表的名称,否则会报错。

    4、获取上下文内的文件夹内容(enumerateFolder)

    返回有关指定文件夹的直接子文件夹、文档和页面的信息。

    wsdl:EnumerateFolder Web Service Struct

    三、About Versions(wsdl)

    整体上就是关于文件版本内容的web service 端点

    0、初始化讯息

    wsdl:init VersionSoap

    虽然初始化已经显示为None,但是实际上为

    The protocol server endpoint is formed by appending "/_vti_bin/version.asmx" to the URL of the site, for example, http://www.contoso.com/Repository/_vti_bin/Versions.asmx.
    
    • 1

    full wsdl: full WSDL

    1、获取文件版本讯息(getVersions)

    获取输入上下文的文件名称,返回版本讯息以作其他用途,通常若为修改多次的版本,会存在多个版本号

    通常我们只需要提取 result 标签即可,用于获取到列表的节点内容讯息。 值得注意的是需要输入的是结合文档上下文的名称,否则会报错。

    四、About Copys (wsdl)

    用于复制文件和内容转换的web service 端点

    0、初始化讯息

    wsdl:init CopysSoap

    虽然初始化已经显示为None,但是实际上为

    The protocol server endpoint is formed by appending "/_vti_bin/copy.asmx" to the URL of the site, for example, http://www.contoso.com/Repository/_vti_bin/copy.asmx.
    
    • 1

    full wsdl: full WSDL

    1、获取字节流回调接口(GetItem)

    用于获取字节流内容,用于下载文件

    通常存在四个输入参数,我们只需要关注第一个和第四个即可。

    第一个为获取到的文档上下文url。

    第四个为返回的字节流内容。

    我们只需要将字节流转换为文档即可。

    五、调用SharePoint的方式

    sharepoint 2007

    1、 sample like vionita

    2、 sample like vitkin

    sharepoint 2013

    经过实际测试,这个解决方案可以兼容SharePoint 2010

    1、sample like TheAshwanik

    dependce on library java-sharepoint-library

    兼容性解决方案 JavaScript (full version)

    声称可以兼容全部

    https://aymkdn.github.io/SharepointPlus/

    SharePointPlus document blog

    SharePoint 2007 : Compatible until SharepointPlus v3.0.5 – SP2007 is not tested anymore

    SharePoint 2010 : Compatible until SharepointPlus v5.2 – SP2010 is not tested anymore

    SharePoint 2013 : Compatible until SharepointPlus v6.1.5 – SP2013 is not tested anymore

    SharePoint Online : ✓ current supported version

  • 相关阅读:
    数据库原理及应用实验报告-实验8-参照完整性
    .NET Core Nacos 配置中心
    C51--串口发送中断请求
    跨境流量新入口Discord,如何利用他进行海外营销?
    Java内存区域与内存溢出异常(1)
    Hadoop第五章:序列化
    【Reinforcement Learning】强化学习基础内容有哪些?
    免费享受企业级安全:雷池社区版WAF,高效专业的Web安全的方案
    【跨模态】Jina VCED
    226. 翻转二叉树
  • 原文地址:https://blog.csdn.net/CoffeeAndIce/article/details/126837488