Rest Api Kullanarak SharePoint Online Belge Kitaplığına Dosya Yükleme

SharePoint Online üzerinde çevirimiçi belge kitaplıklarına dosya ekleme işlemi yapabilmek için, Token nesnesini ve header’i göndererek SharePoint online üzerine erişim sağlamamız gerekmektedir.

İhtiyacımız olan tek şey bir HttpWebRequest  nesnesi oluşturarak response değerlerine token ve header’ı eklemektetir.

Aşağıdaki kod yardımı ile bu işlemi gerçekleştirebilirsiniz ;

HttpWebRequest endpointRequest;
endpointRequest = (HttpWebRequest)HttpWebRequest.Create(hostWeb + “/_api/web/GetFolderByServerRelativeUrl(‘” + strLibraryName + “/” + destination + strFolderPath + “‘)/Files/add(url='” + strFileName + “‘,overwrite=true)”);
endpointRequest.Method = “POST”;
endpointRequest.Headers.Add(“binaryStringRequestBody”, “true”);
endpointRequest.Headers.Add(“Authorization”, “Bearer ” + appOnlyAccessToken);
endpointRequest.GetRequestStream().Write(translatedText, 0, translatedText.Length);

//Require validation here / Burada bir doğrulama yapılması gerekir.
HttpWebResponse endpointresponse = (HttpWebResponse)endpointRequest.GetResponse(); // Nerede
hostWeb = o365 site
strLibararyName= SharePoint online üzerindeki doküman kütüphanesi,
estination ,path=Klasör yolu
strfilename=Dosya tipi (.*pdf)

Eğer aşağıdaki kullanımda bir eksik yada unutulan bir şey var ise lütfen bu konuyu düzenleyiniz.

Yanlızca uygulam taraflı Access Token alabilme kodu aşağıdadır.

hostWeb = Page.Request[“SPHostUrl”];
var contextToken = TokenHelper.GetContextTokenFromRequest(Page.Request);
Uri sharepointUrl = new Uri(hostWeb);
SharePointContextToken appOnlyContextToken = TokenHelper.ReadAndValidateContextToken(contextToken, Request.Url.Authority);
string appOnlyAccessToken = TokenHelper.GetAppOnlyAccessToken(appOnlyContextToken.TargetPrincipalName, sharepointUrl.Authority, appOnlyContextToken.Realm).AccessToken;

 

Saygılarımla

Leave a Reply