使用Microsoft graph在SharePoint网站上创建页面

时间:2019-01-04 15:19:58

标签: sharepoint microsoft-graph

当前,我正在尝试使用一些虚拟数据在新创建的网站上创建一个页面。根据{{​​3}},应该可以使用json这样创建页面:

POST https://graph.microsoft.com/beta/sites/tenant.sharepoint.com%2Cee2667f8-2bae-460e-944b-613773baaa03%2C8c0054a6-6e0e-49cd-be6d-4c4c0aaf644e/pages HTTP/1.1
Authorization: Bearer <token>
User-Agent: Java-Client
Accept-Encoding: gzip,deflate
Accept: application/json, text/json
Content-Type: application/json; charset=UTF-8
Host: graph.microsoft.com
Connection: keep-alive
Content-Length: 167

{"name":"Testpage21.aspx","publishingState":{"level":"published","versionId":"0.1"},"title":"Testpage21","webParts":[{"type":"rte","innerHTML":"<h1>Hello!</h1>"}]}

因为您看不到任何幻想。不幸的是,发出此请求时,我收到以下错误响应:

HTTP/1.1 500 Internal Server Error
Cache-Control: private
Content-Type: application/json
request-id: 1dba7669-1318-488a-a416-63fddbdfcda1
client-request-id: 1dba7669-1318-488a-a416-63fddbdfcda1
Duration: 833.8091
Strict-Transport-Security: max-age=31536000
Date: Fri, 04 Jan 2019 15:13:15 GMT
Content-Length: 236

{
  "error": {
    "code": "generalException",
    "message": "General exception while processing",
    "innerError": {
      "request-id": "1dba7669-1318-488a-a416-63fddbdfcda1",
      "date": "2019-01-04T15:13:16"
    }
  }
}

当我从最初的请求中删除webparts属性时,POST成功后,我将收到如下响应:

{"@odata.context":"https://graph.microsoft.com/beta/$metadata#sites('tenant.com%2Cee2667f8-2bae-460e-944b-613773baaa03%2C8c0054a6-6e0e-49cd-be6d-4c4c0aaf644e')/pages/$entity","eTag":"\"{DA2C2C0C-2222-4F11-917E-7B4BBFE8AC99},3\"","id":"da2c2c0c-2222-4f11-917e-7b4bbfe8ac99","lastModifiedDateTime":"2019-01-04T15:08:12Z","name":"Testpagina2.aspx","webUrl":"SitePages/Testpagina2.aspx","title":"Testpagina2","pageLayout":"Article","parentReference":{"siteId":"ee2667f8-2bae-460e-944b-613773baaa03"},"contentType":{"id":"0x0101009D1CB255DA76424F860D91F20E6C411800A19AB965C0D2B54C82DFCC03DBE6A732","name":"Sitepagina"},"publishingState":{"level":"checkout","versionId":"0.1"}}

但是,当然,我想在发布之前在页面上至少添加一些内容(html)。

有人可以告诉我使用Graph创建页面是否还不能完全正常工作吗?还是我错过了一些东西。

p.s。可以使用哪种Webpart?

1 个答案:

答案 0 :(得分:0)

不幸的是,我们的文档中有一个错误(已修复),“ innerHTML”属性应该像其他Web部件的属性一样包装在“ data”属性中。这是您的有效载荷应如下所示:

{
  "name":"Testpage21.aspx",
  "publishingState":{"level":"published","versionId":"0.1"},
  "title":"Testpage21",
  "webParts": [{
      "type":"rte",
      "data": {
        "innerHTML":"<h1>Hello!</h1>"
      }
  }]
}

就可用的Web部件而言,任何部件都可以工作,但是我们没有记录当前Beta版本与之相关的数据结构。通常,对于您自己的自定义Web部件,API最为有用,因为您已经知道需要在数据块中具有哪些属性。