Создание библиотек документов с помощью Flow с помощью одного вызова API - PullRequest
0 голосов
/ 19 июня 2019

В моей компании в настоящее время есть клиентские сайты SharePoint, размещенные на нашем клиенте O365, и ранее всякий раз, когда новый клиент покупался на борту, мы создавали для них сайт SharePoint с использованием графического интерфейса или Powershell, но в интересах небольшого изменения ситуации. В конечном счете, мне легче в процессе автоматизации создания сайтов для любых новых клиентов, которые к нам присоединяются. Исторически все сайты были спроектированы одинаково с более или менее одинаковой структурой, единственное отличие - сами файлы , Мне удалось автоматизировать большую часть процесса создания сайта SharePoint с помощью потока (создание сайта, связь с сайтом концентратора, владение сайтом, членство в группах, внешний доступ и т. Д.), Но у меня возникли проблемы с созданием библиотек документов на новых созданные сайты. Всего существует 8 библиотек, и хотя я на самом деле разработал, как создавать их по отдельности, используя действие «Отправить HTTP-запрос в SharePoint» (я новичок в Flow и все такое!), Я хотел бы попробовать и вместо этого использую пакетирование MS Graph и JSON, чтобы я мог создать все 8 библиотек за один вызов API.

Я протестировал свой JSON в MS Graph Explorer, который работает и создает библиотеки на указанном клиентском сайте, как и ожидалось, но когда я пытаюсь сделать это через Flow, я получаю сообщение об ошибке ниже, и я не уверен, где я иду не так:

Error

Сообщение об ошибке выделяет Заголовки, но я не уверен, в чем проблема? См. Ниже действие HTTP в потоке:

HTTP-действие

{
"inputs": {
    "method": "POST",
    "uri": "https://graph.microsoft.com/v1.0/$batch",
    "headers": {
        "content-type": "application/json;odata=verbose",
        "authorization": "@{body('Parse_JSON')?['token_type']} @{body('Parse_JSON')?['access_token']}"
    },
    "body": {
        "requests": [
            {
                "id": "1",
                "method": "POST",
                "url": "/sites/devsite.sharepoint.com:/sites/BSS:/lists",
                "body": {
                    "displayName": "Management",
                    "list": {
                        "template": "documentLibrary"
                    }
                },
                "headers": {
                    "content-type": "application/json"
                }
            },
            {
                "id": "2",
                "method": "POST",
                "url": "/sites/devsite.sharepoint.com:/sites/BSS:/lists",
                "body": {
                    "displayName": "Employees",
                    "list": {
                        "template": "documentLibrary"
                    }
                },
                "headers": {
                    "content-type": "application/json"
                }
            },
            {
                "id": "3",
                "method": "POST",
                "url": "/sites/devsite.sharepoint.com:/sites/BSS:/lists",
                "body": {
                    "displayName": "Work Activities",
                    "list": {
                        "template": "documentLibrary"
                    }
                },
                "headers": {
                    "content-type": "application/json"
                }
            },
            {
                "id": "4",
                "method": "POST",
                "url": "/sites/devsite.sharepoint.com:/sites/BSS:/lists",
                "body": {
                    "displayName": "Work Equipment",
                    "list": {
                        "template": "documentLibrary"
                    }
                },
                "headers": {
                    "content-type": "application/json"
                }
            },
            {
                "id": "5",
                "method": "POST",
                "url": "/sites/devsite.sharepoint.com:/sites/BSS:/lists",
                "body": {
                    "displayName": "Substances",
                    "list": {
                        "template": "documentLibrary"
                    }
                },
                "headers": {
                    "content-type": "application/json"
                }
            },
            {
                "id": "6",
                "method": "POST",
                "url": "/sites/devsite.sharepoint.com:/sites/BSS:/lists",
                "body": {
                    "displayName": "Workplaces",
                    "list": {
                        "template": "documentLibrary"
                    }
                },
                "headers": {
                    "content-type": "application/json"
                }
            },
            {
                "id": "7",
                "method": "POST",
                "url": "/sites/devsite.sharepoint.com:/sites/BSS:/lists",
                "body": {
                    "displayName": "HR",
                    "list": {
                        "template": "documentLibrary"
                    }
                },
                "headers": {
                    "content-type": "application/json"
                }
            },
            {
                "id": "8",
                "method": "POST",
                "url": "/sites/devsite.sharepoint.com:/sites/BSS:/lists",
                "body": {
                    "displayName": "Quality",
                    "list": {
                        "template": "documentLibrary"
                    }
                },
                "headers": {
                    "content-type": "application/json"
                }
            }
        ]
    }
}

}

Может ли кто-нибудь предложить какое-либо понимание?

Спасибо!

1 Ответ

0 голосов
/ 19 июня 2019

"Странно, у меня работает"

Параметры заголовка являются правильными (без учета регистра), а также телом запроса. MS Flow иногда ведет себя совершенно необъяснимо.

Пожалуйста, попробуйте снова создать временный поток только с HTTP-запросом OAuth2-токена и HTTP-запросом Graph API.

Для разбора токена JSON я использовал следующую схему:

{
"type": "object",
"properties": {
    "token_type": {
        "type": "string"
    },
    "expires_in": {
        "type": "integer"
    },
    "ext_expires_in": {
        "type": "integer"
    },
    "access_token": {
        "type": "string"
    }
}
}
...