Käytä OneDrive-ohjelmointirajapintaa ilman käyttäjän toimia, kuten eräohjelmaa (.NET C# -versio) (Microsoft Graph -kirjaston avulla)
Toimintaympäristö
- Visuaalinen studio
-
- Visual Studio 2022
- .VERKKO
-
- .NET 8
- Microsoftin todennuksen ohjelmointirajapinta
-
- 2.0 OAuth 2
- Microsoft OneDrive -ohjelmointirajapinta
-
- 1.0
- Microsoft.Graph
-
- 5.54.0
- Microsoft-tilien tyypit
-
- Työpaikan tai oppilaitoksen tili
Edellytykset
- Visuaalinen studio
-
- Yksi versioista
- .VERKKO
-
- Yksi versioista
- Microsoftin todennuksen ohjelmointirajapinta
-
- 2.0 OAuth 2
- Microsoft OneDrive -ohjelmointirajapinta
-
- 1.0
- Microsoft.Graph
-
- 5.XX
- Microsoft-tilien tyypit
-
- Työpaikan tai oppilaitoksen tili
Tietoja tästä vinkistä
Tämä vinkki on muokattu ohjelma, joka käyttää kirjastoa seuraavien vinkkien perusteella Microsoft Graph
.
Siksi katso seuraavat vinkit Azuren yleiskatsauksesta ja toimintamenettelystä ja katso tämä vinkki, kun luot ohjelmaa.
edellytys
- Sinulla on Microsoft-tili työpaikan tai oppilaitoksen tiliä varten
- Voit käyttää yllä lueteltuun Microsoft-tiliin liittyvää OneDrivea (esim. OneDrive Business)
- Visual Studio 2022 asennettu
- Olet rekisteröinyt sovelluksesi Azureen yllä olevien vinkkien avulla ja hankkinut tarvittavat tiedot, kuten tunnuksen.
Konsolisovelluksen luominen
Käynnistä Visual Studio ja luo projekti konsolisovelluksellesi. Voit luoda sen Visual Studion ulkopuolella, mutta käytän toistaiseksi Visual Studiota.
Sijainti ja projektin nimi ovat valinnaisia. Tässä tapauksessa projektin nimi on OneDriveApiDotNetClientCredentialsMicrosoftGraph
.
Microsoft.Graph
Hanki ensin ja Azure.Identity
kirjastot NuGetistä.
Tällä kertaa emme jaa koodia, vaan Program.cs
kirjoitamme sen porrastettuna ylhäältä, joten jos voit tarkistaa liikkeen, kirjoita se uudelleen jakamalla koodi tarpeen mukaan.
using Azure.Identity;
using Microsoft.Graph;
Kuvaile nimiavaruus, jota haluat käyttää.
// 各種 ID などの定義
var clientId = "XXXXXXXX"; // クライアント ID
var tenantId = "XXXXXXXX"; // テナント ID
var clientSecret = "XXXXXXXX"; // クライアント シークレット
var userId = "XXXXXXXX"; // ユーザー ID
Määritä kullekin Azuresta saatu tunnus.
// 使いまわすので最初に定義しておく
HttpClient httpClient = new();
Olet luonut pyynnön HttpClient
tehdä määritettyyn URL-osoitteeseen.
// クライアント シークレットによる認証情報を定義
ClientSecretCredential clientSecretCredential = new(tenantId, clientId, clientSecret);
// HttpClient と認証情報で Microsoft Graph サービスのクライアントを生成
using GraphServiceClient graphClient = new(httpClient, clientSecretCredential);
Määritä asiakasohjelman salasana hankkimasi tunnuksen avulla ja niin edelleen.
Näiden tietojen HttpClient
GraphServiceClient
avulla voit luoda esiintymän .
Tätä käytetään GraphServiceClient
usein erilaisten sovellusliittymien käyttämiseen.
// 対象ユーザーに紐づく OneDrive を取得 (紐づいているドライブが OneDrive 1つという前提)
var drive = await graphClient.Users[userId].Drive.GetAsync();
if (drive == null)
{
Console.WriteLine("ドライブを取得できませんでした。");
return;
}
GraphServiceClient
saadaksesi käyttäjään liitetyn OneDriven ensin.
Jos sinulla on useita asemia linkitettynä, Drives
etsi ja hae kohde-OneDrive osoitteesta .
On mahdollista, että myös jokin muu asema kuin OneDrive on linkitetty, mutta en ole tarkistanut niin paljon.
Jos olet varma, että vain yksi OneDrive on linkitetty, voit Drive
saada sen sellaisena kuin se on ominaisuuksissa.
// OneDrive のルートを取得
var root = await graphClient.Drives[drive.Id].Root.GetAsync();
if (root == null)
{
Console.WriteLine("OneDrive のルートを取得できませんでした。");
return;
}
Kun sinulla on OneDrive, voit käyttää sitä vapaasti. Jos etsit kansion tai tiedoston tunnusta, voit määrittää sen suoraan. Ensinnäkin en ole tarkistanut mitään, joten hankin juurikansion.
// ルート直下にあるフォルダ一覧取得
var rootChildren = await graphClient.Drives[drive.Id].Items[root.Id].Children.GetAsync();
if (rootChildren == null || rootChildren.Value == null)
{
Console.WriteLine("フォルダの一覧を取得できませんでした。");
return;
}
foreach (var item in rootChildren.Value)
{
Console.WriteLine($"Type={(item.File != null ? "File" : "Folder")}, Id={item.Id}, Name={item.Name}, Size={item.Size}");
}
Kun sinulla on juurikansio, Children
saat luettelon tiedostoista ja kansioista suoraan sen alle.
Sen jälkeen luettelen haetut arvot ja näytän nimet.
Yhteenveto
Yritin kirjoittaa koodia käyttämällä "Microsoft Graph" -kirjastoa. Uskon, että voit vähentää koodin määrää huomattavasti verrattuna API:n URL-osoitteen käyttämiseen.
Mielestäni haittapuolena on kuitenkin se, että kirjaston eri versiot voivat aiheuttaa rikkovia muutoksia koodiin ja dokumentaatiota on vähän. Jos sietää näitä, mielestäni olisi edullisempaa vähentää kirjoittamasi koodin määrää.
Kiitos
Minulla oli tällä kertaa kysymyksiä OneDrive-ohjelmointirajapinnan käytöstä, joten esitin kysymyksen.