1
私は紺碧の広告とazure-activedirectory-library-for-cordovaを使用して共有ポイントを認証できました。私はシェアポイントからリストを取得することができましたが、リストアイテムを更新または作成できませんでした。これは認証してリストを取得する私のコードです。私が必要とするのは、リスト項目を作成または更新することです。私はあなたがおそらくアイテムではなく、GETを作成/更新するために、POSTを実行する必要がありますThis examplephonegapを使用してSharePointリストアイテムを更新します
var authority = "https://login.windows.net/common",
redirectUri = "http://my re direct url",
resourceUri = "https://my resource url",
clientId = "5a9hh56u-2485-7523-0122-j5k62463ab05",
var app = {
// Invoked when Cordova is fully loaded.
onDeviceReady: function() {
document.getElementById('search').addEventListener('click', app.search);
},
// initialize authentication operations.
search: function() {
app.authenticate(function (authresult) {
app.requestData(authresult);
});
},
// Shows user authentication dialog if required.
authenticate: function (authCompletedCallback) {
app.context = new Microsoft.ADAL.AuthenticationContext(authority);
app.context.tokenCache.readItems().then(function (items) {
if (items.length > 0) {
authority = items[0].authority;
app.context = new Microsoft.ADAL.AuthenticationContext(authority);
alert(app.context.webAbsoluteUrl);
}
// Attempt to authorize user silently
app.context.acquireTokenSilentAsync(resourceUri, clientId)
.then(authCompletedCallback, function() {
// We require user cridentials so triggers authentication dialog
app.context.acquireTokenAsync(resourceUri, clientId, redirectUri)
.then(authCompletedCallback, function (err) {
app.error("Failed to authenticate: " + err);
});
});
});
},
// Makes Api call to receive user list.
requestData: function (authResult) {
alert("Token : "+authResult.accessToken);
var req = new XMLHttpRequest();
var url = "https://mytenant.sharepoint.com/_api/web/lists/getbytitle('WebServiceTest')/items";
req.open("GET", url, true);
req.setRequestHeader('Authorization', 'Bearer ' + authResult.accessToken);
req.onload = function(e) {
if (e.target.status >= 200 && e.target.status < 300) {
alert("target"+e.target.request);
var xml = $.parseXML(e.target.response),
$xml = $(xml),
$test = $xml.find('Title');
alert($test.text());
$("#userlist").text($test.text());
return;
}
app.error('Data request failed: ' + e.target.response);
};
req.onerror = function(e) {
app.error('Data request failed: ' + e.error);
}
req.send();
},
error: function(err) {
var userlist = document.getElementById('userlist');
userlist.innerHTML = "";
var errorItem = document.createElement('li');
errorItem.classList.add('topcoat-list__item');
errorItem.classList.add('error-item');
errorItem.innerText = err;
userlist.appendChild(errorItem);
}
};
document.addEventListener('deviceready', app.onDeviceReady, false);