2017-04-06 1 views
1

Je construis une application Web sur NodeJS et ExpressJs où j'essaie de télécharger des documents vers une bibliothèque Sharepoint Online via l'API REST Sharepoint.Valeur de résumé de requête Sharepoint inter-domaine

Je peux m'authentifier et créer et mettre à jour des éléments de liste. J'utilise node-sp-auth pour s'authentifier et express-request pour effectuer des requêtes http.

Pour accéder à l'API REST Sharepoint, j'utilise le FormDigestValue dans mon en-tête.

tête:

Headers['Content-Type'] = 'application/json;odata=verbose'; 
Headers['X-RequestDigest'] = FormDigestValue; 
Headers['Accept'] = "application/json;odata=verbose"; 
Headers['X-HTTP-Method'] = "POST"; 

Ceci est fonctionne bien lorsque je tente de créer/mettre à jour les éléments de liste dans une liste personnalisée. Mais lorsque je tente de télécharger un document que je reçois l'erreur suivante:

body: '{"error":{"code":"-1, Microsoft.SharePoint.SPException","message": 
{"lang":"en-US","value":"There is no app context to execute this request."}}}' } } 

L'URL j'utilise pour le téléchargement:

siteurl + "/_api/SP.AppContextSite(@TargetSite)/web/lists/getByTitle(@TargetLibrary)/RootFolder/Files/add([email protected],overwrite='true')?" + 
     "@TargetSite='" + siteurl + "'" + 
     "&@TargetLibrary='" + libraryName + "'" + 
     "&@TargetFileName='" + fileName + "'"; 

La demande de poste:

request.post({ 
    url: url, 
    type: "POST", 
    headers: uploadHeaders, 
    binaryStringRequestBody: true, 
    body: fileData, 
}) 

Toute idée je fais mal?

Répondre

2

utiliser ce format plutôt que pour le poste:

url: url, 
type: 'POST', 
data: fileData, 
processData: false, 
headers: { 
    'Accept':'application/json;odata=verbose', 
    'X-RequestDigest': digest, 
    'Content-Length': fileData.byteLength 
} 

Si vous ne disposez pas d'un appel RequestDigest déjà _api/SP.AppContextSite (@TargetSite)/contextInfo

+0

Je pense que aidé. Maintenant, je reçois '' Accès refusé. Vous n'avez pas la permission d'effectuer cette action ou d'accéder à cette ressource. "' Je suis certain d'avoir les bonnes permissions. – TietjeDK