1

Ищу SharePoint Хостинг App Решение которое будет предоставление Брендинг файлов (JS/CSS/изображений) в SharePoint Online/Office 365 среды.Как создать файлы брендинга с помощью SharePoint Hosted App в SharePoint Online/Office 365?

Я получил очень хорошую статью для того чтобы достигнуть этого и пытался реализовать то же самое, как показано в ссылке ниже: http://www.sharepointnutsandbolts.com/2013/05/sp2013-host-web-apps-provisioning-files.html

Это решение не работает для меня, и в то время выполнения приложения, я получаю ниже ошибки: Failed to provision file into host web. Error: Unexpected response data from server. Вот код, который дает мне сообщение об ошибке:

// utility method for uploading files to host web.. 
uploadFileToHostWebViaCSOM = function (serverRelativeUrl, filename, contents) { 
    var createInfo = new SP.FileCreationInformation(); 
    createInfo.set_content(new SP.Base64EncodedByteArray()); 
    for (var i = 0; i < contents.length; i++) { 

     createInfo.get_content().append(contents.charCodeAt(i)); 
    } 
    createInfo.set_overwrite(true); 
    createInfo.set_url(filename); 
    var files = hostWebContext.get_web().getFolderByServerRelativeUrl(serverRelativeUrl).get_files(); 
    hostWebContext.load(files); 
    files.add(createInfo); 

    hostWebContext.executeQueryAsync(onProvisionFileSuccess, onProvisionFileFail); 
} 

Пожалуйста, предложите мне, что может быть проблема в этом коде? Или еще предложите мне другой способ/ссылку, в которой я могу создать приложение, размещенное в SharePoint, для предоставления файлов брендинга.

Спасибо заранее!

+0

Есть еще информация, как внутреннее исключение поставщиков более подробной информации о том, что фактические деньги неожиданный ответ? –

+0

@ Ola: Я попытался получить трассировку стека, но это дает мне нулевое значение. Я получаю только одно сообщение, используя 'args.get_message()'. Остальные параметры имеют значение null, за исключением 'get_message(), args.get_errorTraceCorrelationId()' –

+0

У вас есть расширение .txt вначале? –

ответ

2

Я хотел бы использовать другой метод для доступа к веб-узла контекста следующим образом:

//first get app context, you will need it. 
var currentcontext = new SP.ClientContext.get_current(); 
//then get host web context 
var hostUrl = decodeURIComponent(getQueryStringParameter("SPHostUrl")); 
var hostcontext = new SP.AppContextSite(currentcontext, hostUrl); 

function getQueryStringParameter(param) { 
    var params = document.URL.split("?")[1].split("&"); 
    var strParams = ""; 
    for (var i = 0; i < params.length; i = i + 1) { 
     var singleParam = params[i].split("="); 
     if (singleParam[0] == param) { 
      return singleParam[1]; 
     } 
    } 
} 

Вот некоторые ссылки:

https://sharepoint.stackexchange.com/questions/122083/sharepoint-2013-app-create-list-in-host-web

https://blog.appliedis.com/2012/12/19/sharepoint-2013-apps-accessing-data-in-the-host-web-in-a-sharepoint-hosted-app/

http://www.mavention.com/blog/sharePoint-app-reading-data-from-host-web

http://www.sharepointnadeem.com/2013/12/sharepoint-2013-apps-access-data-in.html

Кроме того, здесь приведен пример развертывания главной страницы, однако, как вы могли заметить во время тестирования, метод, используемый для получения веб-контекста хоста, не работает, как показано на видео, и вы должны использовать его Я описал это раньше.

https://www.youtube.com/watch?v=wtQKjsjs55I

Наконец, вот пример того, как развернуть файлы брендинга через консольное приложение с помощью CSOM, если вы достаточно умны, вы сможете преобразовать это в JSOM.

https://channel9.msdn.com/Blogs/Office-365-Dev/Applying-Branding-to-SharePoint-Sites-with-an-App-for-SharePoint-Office-365-Developer-Patterns-and-P