صارف کے تعامل کے بغیر ون ڈرائیو اے پی آئی استعمال کریں ، جیسے بیچ پروگرام (.نیٹ سی # ورژن) (مائیکروسافٹ گراف لائبریری کا استعمال کرتے ہوئے)

جب صفحے کی تازہ کاری :
صفحہ تخلیق تاریخ :

آپریٹنگ ماحول

Visual Studio
  • Visual Studio 2022
.جال
  • .NET 8
Microsoft Authentication API
  • 2.0 اوتھ 2
Microsoft OneDrive API
  • 1.0
Microsoft.Graph
  • 5.54.0
مائیکروسافٹ اکاؤنٹس کی اقسام
  • کام یا اسکول کا اکاؤنٹ

ضروری شرائط

Visual Studio
  • ورژن میں سے ایک
.جال
  • ورژن میں سے ایک
Microsoft Authentication API
  • 2.0 اوتھ 2
Microsoft OneDrive API
  • 1.0
Microsoft.Graph
  • 5.XX
مائیکروسافٹ اکاؤنٹس کی اقسام
  • کام یا اسکول کا اکاؤنٹ

اس ٹوٹکے کے بارے میں

یہ ٹپ مندرجہ ذیل تجاویز پر Microsoft Graph مبنی لائبریری کا استعمال کرتے ہوئے ایک ترمیم شدہ پروگرام ہے۔ لہذا ، براہ کرم ایزور پر جائزہ اور آپریشن کے طریقہ کار کے لئے مندرجہ ذیل تجاویز کے طریقہ کار کا حوالہ دیں ، اور جب آپ پروگرام بناتے ہیں تو اس ٹپ کا حوالہ دیں۔

پیشگی شرائط

  • آپ کے پاس کسی کام یا اسکول اکاؤنٹ کے لئے مائیکروسافٹ اکاؤنٹ ہے
  • آپ اوپر درج کردہ مائیکروسافٹ اکاؤنٹ سے وابستہ ون ڈرائیو استعمال کرسکتے ہیں (مثال کے طور پر ، ون ڈرائیو بزنس)
  • Visual Studio 2022 installed
  • آپ نے مندرجہ بالا تجاویز کا حوالہ دے کر اپنی ایپ کو ایزور پر رجسٹر کیا ہے اور ضروری معلومات جیسے آئی ڈی حاصل کی ہیں۔

ایک کنسول ایپلی کیشن بنائیں

بصری اسٹوڈیو شروع کریں اور اپنی کنسول ایپلی کیشن کے لئے ایک پروجیکٹ بنائیں۔ آپ اسے بصری اسٹوڈیو سے باہر بنا سکتے ہیں ، لیکن میں ابھی کے لئے بصری اسٹوڈیو استعمال کروں گا۔

مقام اور پروجیکٹ کا نام اختیاری ہے۔ اس معاملے میں، منصوبے کا نام ہے OneDriveApiDotNetClientCredentialsMicrosoftGraph .

Microsoft.Graph سب سے پہلے ، نیوگیٹ سے لائبریریاں اور Azure.Identity لائبریریاں حاصل کریں۔

اس بار ، ہم کوڈ کو تقسیم نہیں کریں گے ، بلکہ Program.cs اسے اوپر سے الگ الگ لکھیں گے ، لہذا اگر آپ نقل و حرکت کو چیک کرسکتے ہیں تو ، براہ کرم ضرورت کے مطابق کوڈ کو تقسیم کرکے اسے دوبارہ لکھیں۔

using Azure.Identity;
using Microsoft.Graph;

اس نام کی جگہ کی وضاحت کریں جسے آپ استعمال کرنا چاہتے ہیں۔

// 各種 ID などの定義
var clientId = "XXXXXXXX";      // クライアント ID
var tenantId = "XXXXXXXX";      // テナント ID
var clientSecret = "XXXXXXXX";  // クライアント シークレット
var userId = "XXXXXXXX";        // ユーザー ID

ہر ایک کے لئے ازور پر حاصل کردہ ID سیٹ کریں۔

// 使いまわすので最初に定義しておく
HttpClient httpClient = new();

آپ نے متعین کردہ URL سے درخواست کرنے کے لئے HttpClient ایک تیار کیا ہے۔

// クライアント シークレットによる認証情報を定義
ClientSecretCredential clientSecretCredential = new(tenantId, clientId, clientSecret);

// HttpClient と認証情報で Microsoft Graph サービスのクライアントを生成
using GraphServiceClient graphClient = new(httpClient, clientSecretCredential);

آپ کے ذریعہ حاصل کردہ آئی ڈی کا استعمال کرتے ہوئے کلائنٹ کے راز کی وضاحت کریں ، اور اسی طرح۔ آپ اس ڈیٹا کو مثال بنانے کے لئے HttpClient GraphServiceClient استعمال کرسکتے ہیں۔ یہ اکثر مختلف اے پی آئی تک رسائی حاصل کرنے کے لئے استعمال کیا جاتا ہے GraphServiceClient .

// 対象ユーザーに紐づく OneDrive を取得 (紐づいているドライブが OneDrive 1つという前提)
var drive = await graphClient.Users[userId].Drive.GetAsync();
if (drive == null)
{
  Console.WriteLine("ドライブを取得できませんでした。");
  return;
}

GraphServiceClient سب سے پہلے صارف کے ساتھ منسلک ون ڈرائیو حاصل کرنے کے لئے. اگر آپ کے پاس متعدد ڈرائیوز منسلک ہیں تو ، Drives ہدف ون ڈرائیو کو تلاش کریں اور بازیافت کریں۔ یہ ممکن ہے کہ ون ڈرائیو کے علاوہ کوئی اور ڈرائیو بھی منسلک ہو ، لیکن میں نے اتنا چیک نہیں کیا ہے۔ اگر آپ کو یقین ہے کہ صرف ایک ون ڈرائیو منسلک ہے تو ، آپ Drive اسے حاصل کرسکتے ہیں جیسا کہ یہ خصوصیات میں ہے۔

// OneDrive のルートを取得
var root = await graphClient.Drives[drive.Id].Root.GetAsync();
if (root == null)
{
  Console.WriteLine("OneDrive のルートを取得できませんでした。");
  return;
}

ایک بار جب آپ ون ڈرائیو حاصل کرتے ہیں تو ، آپ اسے آزادانہ طور پر رسائی حاصل کرسکتے ہیں۔ اگر آپ کسی فولڈر یا فائل کی آئی ڈی دیکھ رہے ہیں تو ، آپ اسے براہ راست واضح کرسکتے ہیں۔ سب سے پہلے، میں نے کچھ بھی چیک نہیں کیا ہے، لہذا مجھے روٹ فولڈر مل رہا ہے.

// ルート直下にあるフォルダ一覧取得
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}");
}

ایک بار جب آپ کے پاس روٹ فولڈر ہوتا ہے تو ، Children آپ اس کے تحت براہ راست فائلوں اور فولڈروں کی فہرست حاصل کرسکتے ہیں۔ اس کے بعد ، میں بازیافت شدہ اقدار کو شمار کرتا ہوں اور نام ظاہر کرتا ہوں۔

خلاصہ

میں نے "مائیکروسافٹ گراف" کی لائبریری کا استعمال کرتے ہوئے کوڈ لکھنے کی کوشش کی۔ مجھے لگتا ہے کہ آپ اے پی آئی کے یو آر ایل تک رسائی کے مقابلے میں کوڈ کی مقدار کو کافی حد تک کم کرسکتے ہیں۔

تاہم ، میرے خیال میں نقصانات یہ ہیں کہ لائبریری کے مختلف ورژن کوڈ میں بریکنگ تبدیلیوں کا سبب بن سکتے ہیں اور بہت کم دستاویزات ہیں۔ اگر آپ ان کو برداشت کرسکتے ہیں تو ، میرے خیال میں آپ کے لکھے گئے کوڈ کی مقدار کو کم کرنا زیادہ فائدہ مند ہوگا۔

شکریہ

میرے پاس اس بار ون ڈرائیو اے پی آئی استعمال کرنے کے بارے میں کچھ سوالات تھے ، لہذا میں نے ایک سوال پوچھا۔