Подключиться к SharePoint с помощью NodeJS

Библиотеки

Первое, что мы сделаем, это получим необходимые библиотеки

npm i node-sp-auth request-promise gd-sprest
  • node-sp-auth используется для аутентификации в SharePoint.
  • запрос-обещание, используемый для выполнения HTTP-запроса.
  • gd-sprest используется для генерации формата HTTP-запроса.

Импорт библиотек

Теперь, когда у нас есть необходимые библиотеки, мы можем импортировать их в файл скрипта.

var spauth = require('node-sp-auth');
var request = require('request-promise');
var $REST = require("gd-sprest");

Подключиться к SharePoint

Теперь, когда библиотеки доступны, мы подключимся к SharePoint. см. в документации . Дополнительные примеры подключения к различным средам Для этого примера мы подключимся к SPO.

// Log
console.log("Connecting to SPO");

// Connect to SPO
var url = "https://[tenant].sharepoint.com/sites/dev";
spauth.getAuth(url, {
    username: "[SPO Login]",
    password: "[SPO Password]",
    online: true
}).then(options => {
    // Log
    console.log("Connected to SPO");
});

Сгенерировать запрос

В этом примере кода будут получены файлы, хранящиеся в подпапке «sprest» библиотеки «Активы сайта». Мы будем использовать библиотеку $REST gd-sprest для генерации информации о запросе.

API REST для SharePoint Intellisense

Библиотека gd-sprest автоматически предоставляет Intelliense.

// Get the web
var info = $REST.Web(url)
// Get the 'Site Assets' library
.Lists("Site Assets")
// Get the root folder
.RootFolder()
// Get the 'sprest' sub-folder
.Folders("sprest")
// Get the files in the folder
.Files()
// Get the request information
.getInfo();

Информация о заголовке запроса

Чтобы запрос был успешным, нам нужно будет скопировать информацию заголовка из аутентификации SP.

// Copy the headers from the SP authentication
for (var key in options.headers) {
    // Set the header
    info.headers[key] = options.headers[key];
}

Выполнить запрос

Мы выполним запрос Get/Post в зависимости от типа. см. в документации Дополнительные примеры выполнения запросов . Ожидается, что возвращаемый объект будет объектом JSON, поэтому мы можем легко преобразовать его в переменную. В этом примере предполагается набор файлов, поэтому мы проанализируем «результаты» и выведем каждый файл на консоль.

// Execute the request, based on the method
request[info.method == "GET" ? "get" : "post"]({
    headers: info.headers,
    url: info.url,
    body: info.data
}).then(
    // Success
    response => {
        var obj = JSON.parse(response).d;
        if (obj.results && obj.results.length > 0) {
            // Parse the results
            for (var i = 0; i < obj.results.length; i++) {
                // Log
                console.log(obj.results[i]);
            }
        } else {
            // Log
            console.log(obj);
        }
    },
    // Error
    error => {
        // Log
        console.log("Error executing the request", error);
    }
);

Пример вывода

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *