标签: sharepoint-api

使用SharePoint 2013 REST API添加列表项

我正在尝试使用带有REST API的SharePoint 2013在现有列表中添加新项.

这里有相当好的文档:http://msdn.microsoft.com/en-us/library/jj164022(office.15).aspx#ListItems

我试图添加项目的列表称为"资源",因此我执行以下http POST操作来添加新项:

POST https://<site>/apps/reserve/_api/lists/getbytitle('Resources')/items
    X-RequestDigest: <digest_key>
    Content-Type: application/json;odata=verbose

    {
        "__metadata":    {"type": "SP.Data.ResourcesListItem"},
        "Title":         "New Title",
        "Description":   "New Description",
        "Location":      "Sunnyvale"
    }
Run Code Online (Sandbox Code Playgroud)

但是我收到了以下错误:

A type named 'SP.Data.ResourcesListItem' could not be resolved by the model.
When a model is available, each type name must resolve to a valid type.
Run Code Online (Sandbox Code Playgroud)

所以我假设我没有资源名称的正确名称.在文档中,它说:

To do this operation, you must know the ListItemEntityTypeFullName property of the list
and pass that as the value of type in the HTTP request …
Run Code Online (Sandbox Code Playgroud)

rest sharepoint sharepoint-api sharepoint-2013

24
推荐指数
1
解决办法
3万
查看次数

如何从提供商托管的应用程序获取请求摘要值?

我正在使用javascript REST Api开发SharePoint 2013 Provider托管应用程序.为了对sharepoint项执行创建(POST)或更新(MERGE)操作,我需要使用请求设置"X-RequestDigest"标头.

在SharePoint托管的应用程序中,我能够使用http://contoso.sharepoint.com/SharePointHostedApp/_api/contextinfo服务来检索请求摘要值; 但是,在提供商托管的应用程序中,我无法获得该值.

提供商托管应用程序的第一个区别是,现在我们需要发出跨域请求,因为我们不是在sharepoint站点中运行,而是在不同服务器上托管的不同域中运行.要明确:而不是

$.ajax({
    url: appWebUrl + '/_api/contextinfo',
    method: "POST",
    headers: { "Accept": "application/json; odata=verbose" }
})
Run Code Online (Sandbox Code Playgroud)

我假设我们需要使用它SP.RequestExecutor来执行跨域请求.当我构造请求时,它看起来如下(我已经将实际的url更改为假的,但基本上我们告诉代理使用主机web有目标并获取/_api/contextinfo端点):

https://contoso-6f921c6addc19f.sharepoint.com/ProviderHostedApp/_api/SP.AppContextSite(@target)/contextinfo?@target=%27https://contoso.sharepoint.com%27

但是,我收到此错误:Cannot find resource for the request contextinfo.意味着端点不存在.

我确保使用application/json;odata=verbose带有空体的正确标头的POST方法.

如何从/_api/contextinfo服务获取请求摘要值到提供者托管应用程序?

根据我研究的内容:

  • 我们不能用$('#__REQUESTDIGEST').val(); 因为提供商托管的应用程序无法使用它.
  • 我们需要使用跨域请求中的一些,因为我在sharepoint之外运行.
  • 我已经尝试将跨域请求的目标设置为hostWebUrl和appWebUrl,并且两者都给出了相同的错误.

必须有某种方法来获取此值,否则我们将仅限于使用JavaScript时的读取操作.还有其他人用javascript解决了这个问题吗?

从技术上讲,我可以尝试使用服务器上的CSOM实现所需的服务,并使用WebAPI或WCF公开它们,但必须实现它似乎是不合理的.

更新:

我继续尝试添加一个WebAPI控制器,该控制器公开一个检索请求摘要值的服务.这实际上确实检索了请求摘要值; 但是,当尝试在未来调用的标头中使用它时,我收到错误:"The security validation for this page is invalid and might be corrupted. Please use your web browser's Back button to try your …

sharepoint ms-office sharepoint-api sharepoint-2013

20
推荐指数
2
解决办法
3万
查看次数

哪些开发人员功能最能激发您对WSS 4.0/SharePoint 2010的兴趣?

开发人员在使用SharePoint时遇到了很多挫败感,但我们都希望微软一直在倾听.考虑到这一点...

哪些更新和新功能让开发人员兴奋地使用WSS 4.0和SharePoint Server 2010?

每个功能都有一个答案,所以社区可以对每个功能进行投票.

sharepoint sharepoint-api sharepoint-2010 sharepointfoundation2010

11
推荐指数
5
解决办法
2145
查看次数

SharePoint List.getListItems WebService以递归方式返回子文件夹内容

我从CXF调用lists.asmx webservice .以下soap调用不会返回列表子文件夹中的文件.它返回folder1,folder2和file1.pdf

Shared Documents
  folder1
     file2.docx
     file3.pdf
  folder2
     sub-folder1
        file5.pdf
     file4.pdf
  file1.pdf
Run Code Online (Sandbox Code Playgroud)

SOAP调用

POST /_vti_bin/lists.asmx HTTP/1.1 Accept-Encoding: gzip,deflate

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:soap1="http://schemas.microsoft.com/sharepoint/soap/">
   <soap:Header/>
   <soap:Body>
      <soap1:GetListItems>
         <soap1:listName>Shared Documents</soap1:listName>
       <queryOptions> 
        <QueryOptions> 
           <IncludeMandatoryColumns>TRUE</IncludeMandatoryColumns>
           <ViewAttributes Scope="RecursiveAll"/>
           <DateInUtc>TRUE</DateInUtc>               
        </QueryOptions>
      </queryOptions> 
      </soap1:GetListItems>
   </soap:Body>
</soap:Envelope>
Run Code Online (Sandbox Code Playgroud)

有关如何从结果中包含的folder1,folder3和sub-folder1中获取文件的任何线索?如果列表Web服务无法做到,是否有替代服务/方法?

附加信息: 还有另一个Web服务,SiteData (_vti_bin/sitedata.asmx).它有一个类似的方法(getListItems)并返回所有文件只有列表名称而没有其他参数.问题是我无法弄清楚如何/在何处指定Paging参数,因为列表中没有任何queryOptions输入元素网络服务.

 <soap1:strListName>?</soap1:strListName>
 <soap1:strQuery>?</soap1:strQuery>
 <soap1:strViewFields>?</soap1:strViewFields>
 <soap1:uRowLimit>?</soap1:uRowLimit>
Run Code Online (Sandbox Code Playgroud)

sharepoint web-services sharepoint-api sharepoint-2010

10
推荐指数
1
解决办法
2万
查看次数

如何使用Sharepoint API检查Sharepoint文档库是否设置了Require Approval标志?

能够检查"Requires Checkout"标志也是有用的.我认为它可能是SPDocumentLibrary对象上的属性,但我看不到它.

我是否需要查看其中一个管理员命名空间...?

sharepoint sharepoint-api

9
推荐指数
1
解决办法
2930
查看次数

用于Sharepoint服务器的Java API

我想知道sharepoint服务器是否有java api.

非常感谢

sharepoint-api java-api sharepoint-2010

9
推荐指数
2
解决办法
1万
查看次数

将SharePoint列表数据提取到单独的SQL Server表的最简单方法?

编辑: 什么是最简单的方法提取SharePoint列表的数据到一个单独的SQL Server表?一个条件:您处于不控制SharePoint Server背后的SQL Server的工作环境中,因此您不能只从UserData表中提取.

有没有可用于安排夜间提取物的实用程序?

Microsoft是否计划对"SharePoint 4"进行任何改进?

更新2009年1月6日:
http ://connectionstrings.com/sharepoint
对于未安装office的服务器,您需要:
此下载

sharepoint etl sharepoint-api

8
推荐指数
2
解决办法
5万
查看次数

SharePoint SPFolder.SubFolders.Add实际上没有添加文件夹

我有几个文档库只是标准库 - 没有相关的自定义内容类型或任何东西.我正在尝试向他们添加子文件夹,在某些情况下它只是不起作用.

SPFolder parent = library.RootFolder;
SPFolder child = parent.SubFolders.Add(subfoldername);
parent.Update();
bool exists = child.Exists;   // This is false
Run Code Online (Sandbox Code Playgroud)

当我尝试添加一个名为M1 Spectrum CRC w-out CMN67 E02_filesvia code 的子文件夹时,它无法添加该文件夹,即使该Add方法似乎成功执行.当我尝试通过标准的基于浏览器的SharePoint列表UI添加这个确切名称的文件夹时,我成功地添加了一个文件夹,但它有一个不同的名称:

M1 Spectrum CRC w-out CMN67 E02_files_

请注意SharePoint创建的文件夹中的尾随下划线.这是一个合法的Windows文件夹名称,它不包含任何不友好的HTML字符.那么,这有什么用呢?我错过了一些明显的东西吗

sharepoint sharepoint-api

8
推荐指数
1
解决办法
1万
查看次数

验证Office 365 SharePoint Online OOTB服务

我想将SharePoint数据用于非.Net平台.为此,我已经使用了像Lists.asmx,Webs.asmx和search.asmx这样的SharePoint OOTB服务.我已使用Authentication.asmx成功添加了对基于表单的身份验证的支持.现在,我想在线提供对Office 365 SharePoint的支持.为此,我有一个我正在研究的S​​harePoint Online网站演示.问题,我面临的是当我使用Authentication.asmx的Mode方法时,我得到'Forms'作为回应:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
    <ModeResponse xmlns="http://schemas.microsoft.com/sharepoint/soap/">
        <ModeResult>Forms</ModeResult>
    </ModeResponse>
</soap:Body>
</soap:Envelope>
Run Code Online (Sandbox Code Playgroud)

但是,当我使用Login.asmx并传递正确的用户名和密码时,我收到'PasswordNotMatch'错误,相同的凭据在浏览器中正常工作.

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
    <LoginResponse xmlns="http://schemas.microsoft.com/sharepoint/soap/">
        <LoginResult>
         <ErrorCode>PasswordNotMatch</ErrorCode>
            <TimeoutSeconds>0</TimeoutSeconds>
        </LoginResult>
    </LoginResponse>
</soap:Body>
</soap:Envelope>
Run Code Online (Sandbox Code Playgroud)

注意: - 这适用于FBA非Office 365 SharePoint站点.

有人可以帮我实现对Office 365 SharePoint Online OOTB服务的支持吗?

sharepoint web-services sharepoint-api sharepoint-2010 office365

7
推荐指数
1
解决办法
5061
查看次数

对 Microsoft Sharepoint API 的 curl 请求?

是否有一种简单的方法可以使用对 REST API的cURL请求来访问我的 Sharepoint 帐户上的文件?例如

curl -i -H "Authorization: Bearer <some-key-here>" https://mysharepoint.com/_api/web/Lists
Run Code Online (Sandbox Code Playgroud)

我已阅读有关应用程序身份验证和授权的所有文档,但在这种情况下,我没有可以注册的“应用程序”。我只需要在 REST 请求中使用某种 API 密钥。如何以这种方式使用 REST API?

我很感激对此问题的任何见解。

rest sharepoint curl sharepoint-api sharepoint-2013

7
推荐指数
2
解决办法
1万
查看次数