【问题标题】:how to access specific team site in share-point using rest apis如何使用rest api访问共享点中的特定团队站点
【发布时间】:2020-04-26 16:28:45
【问题描述】:

目标:我正在尝试访问使用 REST API 在我的共享点帐户中创建的特定团队网站,并在其中创建一个文件夹(文档文件夹 - 默认位置)

实际结果:我收到 403 错误代码。以下是我得到的响应正文。

{
    "error": {
        "code": "-2147024891, System.UnauthorizedAccessException",
        "message": {
            "lang": "en-US",
            "value": "Access denied. You do not have permission to perform this action or access this resource."
        }
    }
}

预期结果:应创建指定文件夹,响应代码应为 201 或 200

我尝试过的:

  1. 首先在共享点和 Azure 中注册了应用程序
  2. 调用share-point rest api获取不记名令牌
  3. 测试了获取共享点的 apis,一切都按预期工作。
  4. 在每次请求之前,我都会在请求标头中设置不记名令牌
  5. 以下是我正在设置的其他请求标头
Content-Type : application/json;odata=verbose
X-RequestDigest : some random string
Accept : application/json;odata=verbose

以下是共享点 REST API,我使用 POST 方法创建文件夹

https://***.sharepoint.com/sites/TeamSite_ForB/_api/web/folders

以下是我发送的请求正文

{ 
    "__metadata":{ 
        "type":"SP.Folder"
    },
    "ServerRelativeUrl":"/Shared Documents/buddhika-test-folder-03"
}

在共享点文档站点中,他们提供了 API 格式。 我尝试使用该格式,但也无法获得结果。

以下来自共享点文档。

要访问特定站点,请使用以下结构:

http://server/site/_api/web

在那种情况下,我已经尝试如下

https://***.sharepoint.com/TeamSite_ForB/_api/web/folders

我收到的响应为 404 Not found 且没有响应消息。

我搜索了许多文档,但找不到访问特定团队网站的方法。 任何帮助将不胜感激。

【问题讨论】:

    标签: rest api sharepoint sharepoint-online


    【解决方案1】:

    请求 REST API URL 如下。

    https://***.sharepoint.com/sites/TeamSite_ForB/_api/web/folders
    

    请求正文如下。

    { 
        "__metadata":{ 
            "type":"SP.Folder"
        },
        "ServerRelativeUrl":"Shared Documents/buddhika-test-folder-03"
    }
    

    示例代码

    <script src="//code.jquery.com/jquery-3.1.0.min.js" type="text/javascript"></script>
    <script type="text/javascript">
    function getFormDigest() {
        return $.ajax({
            url: _spPageContextInfo.webAbsoluteUrl + "/_api/contextinfo",
            method: "POST",
            headers: { "Accept": "application/json; odata=verbose" }
        });
    }
    
    function createFolderTest() {
        var documentLibraryName = "Shared Documents";
        var folderName="buddhika-test-folder-03";
        if(folderName!=""){
            createfolder(documentLibraryName,folderName).done(function (data) {
                console.log('Folder creted succesfully');
            }).fail(function (error) {
                console.log(JSON.stringify(error));
            });     
        }
        return true;
    }
    function createfolder(documentLibraryName,folderName){
    
        var requestUri = _spPageContextInfo.webAbsoluteUrl + "/_api/web/folders";
        return getFormDigest().then(function (data) {
            return $.ajax({
                url: requestUri,
                type: "POST",           
                contentType: "application/json;odata=verbose",
                data:JSON.stringify({'__metadata': { 'type': 'SP.Folder' }, 'ServerRelativeUrl': documentLibraryName+'/'+folderName}),
                headers: {
                    "accept":"application/json;odata=verbose",           
                    "X-RequestDigest":data.d.GetContextWebInformation.FormDigestValue
                } 
            });
        });
    }
    </script>
    <input type="button" onclick="createFolderTest()" value="Create Folder"/>
    

    【讨论】:

    • 当我在休息点以上使用时,我得到 403 禁止错误。这可能是什么原因?
    猜你喜欢
    • 2014-01-23
    • 2018-07-11
    • 1970-01-01
    • 2021-10-27
    • 1970-01-01
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 2015-01-07
    相关资源
    最近更新 更多