Как добавить вкладку SharePoint с помощью Microsoft Graph API и Graph Client? - PullRequest
0 голосов
/ 19 марта 2020

Это пример в документах по добавлению типичной вкладки «Команды» с помощью Microsoft Graph API:

POST https://graph.microsoft.com/v1.0/teams/{id}/channels/{id}/tabs
{
  "displayName": "My Contoso Tab",
  "teamsApp@odata.bind" : "https://graph.microsoft.com/v1.0/appCatalogs/teamsApps/06805b9e-77e3-4b93-ac81-525eb87513b8",
  "configuration": {
    "entityId": "2DCA2E6C7A10415CAF6B8AB6661B3154",
    "contentUrl": "https://www.contoso.com/Orders/2DCA2E6C7A10415CAF6B8AB6661B3154/tabView",
    "websiteUrl": "https://www.contoso.com/Orders/2DCA2E6C7A10415CAF6B8AB6661B3154",
    "removeUrl": "https://www.contoso.com/Orders/2DCA2E6C7A10415CAF6B8AB6661B3154/uninstallTab"
  }
}

Если вам нужна вкладка SharePoint, она говорит: «Для вкладок страницы и списка SharePoint - teamAppId 2a527703-1f6f-4559-a332-d8a7d288cd88. Конфигурация не поддерживается. Если вы хотите настроить вкладку, рассмотрите возможность использования вкладки Веб-сайт. "

Используя библиотеку Graph Graph, довольно просто:

//Add groups
await graphClient.Groups
                .Request()
                .AddAsync(group);
//Add teams
await graphClient.Me.JoinedTeams
                .Request()
                .GetAsync();
//Get channels
var channels = await graphClient.Teams[ID].Channels
                .Request()
                .GetAsync();

Но для добавления вкладок у них нет помощника в библиотеке Graph Client, как и для других действий, показанных выше. Я исхожу из того, что могу добавить вкладку SharePoint, используя библиотеку Graph Graph, и обнаружил:

await graphClient.Teams[teamId].Channels[channelId].Tabs.Request().AddAsync(teamsTabTest);

Однако я не совсем понимаю, как настроить аргумент teamTabTest для соответствия принятого параметра включить вкладку SharePoint. Я передал аргумент:

            var teamsTabTest = new TeamsTab
            {
              DisplayName = "Home",
              Id = "https://graph.microsoft.com/v1.0/appCatalogs/teamsApps/2a527703-1f6f-4559-a332-d8a7d288cd88"
            };

И когда я запустил это, я получил ответ об ошибке: Код: BadRequest Сообщение: в запросе отсутствовала привязка навигации для teamApp.

Error message

Как мне настроить объект groupsTabTest, чтобы я мог правильно отправить запрос на вкладку SharePoint?

1 Ответ

1 голос
/ 19 марта 2020

Всем, кто в будущем будет бороться с этим вопросом, благодаря комментарию Мухаммеда выше - я нашел правильный синтаксис и рабочие аргументы, которые успешно создали вкладку групп SharePoint:

 var teamsTabTest = new TeamsTab
        {
            DisplayName = "SharePointTestTab3",
            AdditionalData = new Dictionary<string, object>()
            {
                { "teamsApp@odata.bind", "https://graph.microsoft.com/v1.0/appCatalogs/teamsApps/2a527703-1f6f-4559-a332-d8a7d288cd88" }
            },
        };
//Using the graph client helper
var graphClient = GetAuthenticatedClient();
var response = await graphClient.Teams[teamId].Channels[channelId].Tabs.Request().AddAsync(teamsTabTest);
...