/>У меня есть простое приложение, которое я разрабатываю для проверки концепции. первая часть рекурсивно считывает структуру Sharepoint и сохраняет в базе данных имя папки/имя файла/размер файла/url. Это работает блестяще. Чтобы это работало, я зарегистрировал «приложение» в Azure и поместил соответствующие идентификаторы в файл конфигурации:
Код: Выделить всё
SHAREPOINT_TENANT_ID="f5323574-......"
SHAREPOINT_CLIENT_ID="6718dcf4......."
SHAREPOINT_CLIENT_SECRET="_HG8Q......"
SHAREPOINT_TOP_DRIVE_ID="b!UKVJ......"
Код: Выделить всё
$credate = $v['createdDateTime'];
$updatedate = $v['lastModifiedDateTime'];
$size = $v['size'];
$name = $v['name'];
$url = $v['webUrl'];
$urlSession = $v['@microsoft.graph.downloadUrl'];
Пока все хорошо.
Вторая часть: моя проблема возникает, когда я читаю базу данных и хотите получить доступ к документу через его URL-адрес из Sharepoint. Я использую тот же метод для получения токена доступа, что и в первой части, и (проверив разрешения приложений и т. д. в Azure) все выглядит так, как будто все должно работать нормально - но, конечно, это не так - я получаю 401. Это пример вывода, сгенерированного моим php:
Код: Выделить всё
php sp_get_doc_via_db.php
Decoded JWT Payload:
Array
(
[aud] => https://graph.microsoft.com
[iss] => https://sts.windows.net/f5323574-...../
[iat] => 1721819141
[nbf] => 1721819141
[exp] => 1721823041
[aio] => E2dgYDjxf........
[app_displayname] => HCAT_API
[appid] => 6718dcf........
[appidacr] => 1
[idp] => https://sts.windows.net/f5323574-d811-........./
[idtyp] => app
[oid] => 2b17f89a-407c-............
[rh] => 0.AUcAdD.........
[roles] => Array
(
[0] => Files.ReadWrite.AppFolder
[1] => BrowserSiteLists.Read.All
[2] => Sites.Selected
[3] => Files.SelectedOperations.Selected
[4] => Sites.Read.All
[5] => Sites.ReadWrite.All
[6] => Files.ReadWrite.All
[7] => User.Read.All
[8] => BrowserSiteLists.ReadWrite.All
[9] => Files.Read.All
[10] => FileStorageContainer.Selected
)
[sub] => 2b17f89a........
[tenant_region_scope] => EU
[tid] => f5323574...........
[uti] => L4C7-..........
[ver] => 1.0
[wids] => Array
(
[0] => 0997a1d........
)
[xms_idrel] => 7 20
[xms_tcdt] => 1575971057
)
Token Expiry (exp): 2024-07-24 12:10:41
11:10:42 Request file - CAS Mural.jpg
11:10:42 https://TOPLEVELDOMAIN.sharepoint.com/sites/path/Shared%20Documents/Archive_Catalogue/Catalogue/4%20Sub-Catalogues/casMural.jpg
Failed to download document. HTTP Status Code: 401
Response: 401 UNAUTHORIZED
header: 401 UNAUTHORIZED
body:
Есть ли у кого-нибудь идеи, что может быть неправильный? За последние дни я несколько раз сталкивался с этой проблемой, и она отнимает у меня слишком много времени!
Я уверен, что ответ будет таким простым, но я не могу придумать, как его найти. .
Мысль: это токен авторизации и нужен ли мне теперь токен доступа? Если это так, то что при этом происходит?
Заранее большое спасибо,
j
Подробнее здесь: https://stackoverflow.com/questions/787 ... ring-to-be
Мобильная версия