вход и аутентификация в OneDrive с использованием VBA

#vba #authentication #onedrive #using

#vba #аутентификация #onedrive #используя

Вопрос:

Мне нужен следующий пример (проверка подлинности OneDrive и вход в систему) с использованием языка VBA, который будет использоваться в файле Microsoft Access 2013 или файле Microsoft access 2016

Ответ №1:

Я думаю, вам действительно будет сложно добиться этого с помощью VBA. Вам нужно будет использовать библиотеку XMLHttpRequest для выполнения HTTP-вызовов для выполнения потока входа в OAuth2. Это будет нелегко.

Что вам может быть проще, так это создать VB.NET или приложение на C #, которое вызывает OneDrive, а затем использует поставщика ODBC / OLEDB для записи в файл Access. Это просто зависит от того, что вы пытаетесь сделать, будет ли это подходящим подходом.

Комментарии:

1. Пожалуйста, скажите, почему всего этого нельзя так же легко достичь с помощью VBA?!

2. @Gene Потому что, насколько мне известно, для VBA не существует универсального HTTP-клиента. Вы должны использовать XMLHttpRequest. Для взаимодействия с OAuth2 используются URL-адреса в кодировке формы и форматы JSON. Выполнение взаимодействий с OAuth2 достаточно сложно с полным набором библиотек. Как только вы действительно запустите поток OAuth2, вам нужно будет установить HTTP-заголовок с вашим токеном на предъявителя. Затем вам придется иметь дело с ответом потока от OneDrive. Я не говорю, что это невозможно, но это не будет весело.

3. ‘@ Darrel Действительно. Итак, мы начнем с добавления «C:windowssystem32msxml6.dll » Ссылка на проект VBA и т.д. На самом деле это довольно просто: если вы знаете, как справиться с этим с VB.NET или C #, тогда это так же легко сделать с помощью VBA, в противном случае это та же кривая обучения. И да, это весело в любом случае.

4. @Gene С VB.NET или C # существуют пакеты Nuget для упрощения доступа к OneDrive через Microsoft Graph nuget.org/packages/Microsoft . Graph и есть пакеты, которые упрощают аутентификацию nuget.org/packages/Microsoft . График. Авторизация . Я более 10 лет занимался разработкой в VB6 и VBA. Это может быть возможно, но это не будет проще.

5. @ Darrel Согласился, я немного упростил это. Спасибо за разъяснение.