Чтение и запись в веб-каналах социальных медиа при помощи службы REST в SharePoint
Создайте приложение, размещаемое в SharePoint, которое использует службу REST для публикации записи и получения личного веб-канала для текущего пользователя.
Предварительные требования для создания надстройки SharePoint, размещенной в SharePoint, которая публикует публикацию и получает веб-канал социальных параметров с помощью службы REST SharePoint
В этой статье предполагается, что вы создаете надстройку для SharePoint с помощью Napa на сайте разработчика Office 365. Если вы используете эту среду разработки, у вас уже установлены необходимые компоненты.
Примечание.
Перейдите в раздел Настройка среды разработки для надстроек SharePoint на Office 365, чтобы узнать, как зарегистрироваться на сайте разработчика и начать использовать Napa.
Если вы не используете Napa на сайте разработчика, то необходимо следующее:
SharePoint с настроенным личным сайтом и личным сайтом, созданным для текущего пользователя
Visual Studio 2012 и Инструменты разработчика Office для Visual Studio 2013
Полный доступ к приложению-службе профилей пользователей для пользователя, вошедшего в систему
Примечание.
Инструкции по настройке среды разработки, которая соответствует вашим потребностям, см. в статье Начало создания приложений для Office и SharePoint.
Основные понятия, которые необходимо знать о работе с социальными веб-каналами SharePoint
Размещение в SharePoint приложение, создайте в этой статье использует JavaScript для создания и отправки HTTP-запросов к конечным точкам представлений состояния (REST). Эти запросы публикация отправку и получение личные веб-канала для текущего пользователя. В таблице 1 приведены ссылки на статьи, в которых описываются общие понятия, которые необходимо знать перед началом работы.
Таблица 1. Основные понятия для работы с социальными каналами SharePoint
Название статьи | Описание |
---|---|
Надстройки SharePoint |
Сведения о Надстройки SharePoint и принципы их создания. |
Начало разработки с использованием социальных функций в SharePoint |
Узнайте, как начать программирование с помощью социальных каналов и записей микроблогов, отслеживания людей и содержимого (документы, сайты и tags.md) и работы с профилями пользователей. |
Работа с веб-каналами социальных сетей в SharePoint |
Сведения о распространенных задач программирования по работе с социальными веб-каналов и API, которое используется для выполнения задачи. |
Создание проекта надстройки SharePoint
На сайте разработчика откройте Napa и выберите Добавить новый проект.
Выберите шаблон приложение для SharePoint, назовите проект SocialFeedRESTи затем нажмите кнопку Создать.
Укажите разрешения, которые ваше приложение должно:
А. В нижней части страницы нажмите кнопку Свойства.
Б. В окне Свойства выберите разрешения.
c. В разделе категория контента задайте разрешения Write для области клиента.
d. В разделе категория социальных задайте разрешения Read для области Профили пользователей.
e. Закройте окно свойств.
- Разверните узел скриптов, выберите файл App.js и удалите содержимое файла.
Публикация в веб-канале социальных ленты с помощью службы REST SharePoint
- В файле App.js объявите глобальную переменную для URL-адреса конечной точки SocialFeedManager.
var feedManagerEndpoint;
- Добавьте следующий код, который получает параметр SPAppWebUrl из строки запроса, который используется для создания конечной точки SocialFeedManager.
$(document).ready(function () {
var appweburl;
var params = document.URL.split("?")[1].split("&");
for (var i = 0; i < params.length; i = i + 1) {
var param = params[i].split("=");
if (param[0] === "SPAppWebUrl") appweburl = param[1];
}
feedManagerEndpoint = decodeURIComponent(appweburl) + "/_api/social.feed";
postToMyFeed();
});
Добавьте следующий код, который создает POST в HTTP-запрос для конечной точки
/my/Feed/Post
, определяет post создания данных, а также публикует post.Ресурс SocialRestPostCreationData отправляет запрос в тексте запроса. SocialRestPostCreationData содержит в целевом объекте post (в данном случае
null
, чтобы указать корневой записью для текущего пользователя) и SocialPostCreationData сложный тип, который определяет свойства post.
function postToMyFeed() {
$.ajax( {
url: feedManagerEndpoint + "/my/Feed/Post",
type: "POST",
data: JSON.stringify( {
'restCreationData':{
'__metadata':{
'type':'SP.Social.SocialRestPostCreationData'
},
'ID':null,
'creationData':{
'__metadata':{
'type':'SP.Social.SocialPostCreationData'
},
'ContentText':'This post was published using REST.',
'UpdateStatusText':false
}
}
}),
headers: {
"accept": "application/json;odata=verbose",
"content-type":"application/json;odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val()
},
success: getMyFeed,
error: function (xhr, ajaxOptions, thrownError) {
alert("POST error:\\n" + xhr.status + "\\n" + thrownError);
}
});
}
Получение веб-канала социальной сети для текущего пользователя с помощью службы REST SharePoint
Добавьте следующий код, который получает Personal канал типа для текущего пользователя с помощью конечной точки /my/Feed
. Заголовок accept запросов, что сервер вернуть представление Нотация объектов JavaScript (JSON) веб-канала в свой ответ.
function getMyFeed() {
$.ajax( {
url: feedManagerEndpoint + "/my/Feed",
headers: {
"accept": "application/json;odata=verbose"
},
success: feedRetrieved,
error: function (xhr, ajaxOptions, thrownError) {
alert("GET error:\\n" + xhr.status + "\\n" + thrownError);
}
});
}
Выполните итерацию по социальному каналу и считывайте из него с помощью службы REST SharePoint
Добавьте следующий код, который готовит возвращаемые данные с помощью функции JSON.stringify и JSON.parse и выполняется итерация по веб-канал и получает владельца потока и текста post корневой.
function feedRetrieved(data) {
var stringData = JSON.stringify(data);
var jsonObject = JSON.parse(stringData);
var feed = jsonObject.d.SocialFeed.Threads;
var threads = feed.results;
var feedContent = "";
for (var i = 0; i < threads.length; i++) {
var thread = threads[i];
var participants = thread.Actors;
var owner = participants.results[thread.OwnerIndex].Name;
feedContent += '<p>' + owner +
' said "' + thread.RootPost.Text + '"</p>';
}
$("#message").html(feedContent);
}
Запуск приложения для SharePoint на сайте разработчика
Чтобы запустить приложение, нажмите кнопку Запустить проект в нижней части страницы.
В вы доверяете открывшейся странице нажмите кнопку Доверять его. Страница приложения открывает и отображает имя владельца и текст каждого post корневого веб-канала.
Пример кода: публикация публикации и получение веб-канала для текущего пользователя с помощью службы REST SharePoint
Ниже приведен полный пример кода для файла App.js. Публикует сообщение, а также получает личные веб-канала для текущего пользователя, который возвращается как объект JSON. Затем выполняется итерация веб-канал.
var feedManagerEndpoint;
// Get the SPAppWebUrl parameter from the query string and build
// the feed manager endpoint.
$(document).ready(function () {
var appweburl;
var params = document.URL.split("?")[1].split("&");
for (var i = 0; i < params.length; i = i + 1) {
var param = params[i].split("=");
if (param[0] === "SPAppWebUrl") appweburl = param[1];
}
feedManagerEndpoint = decodeURIComponent(appweburl)+ "/_api/social.feed";
postToMyFeed();
});
// Publish a post to the current user's feed by using the
// "<app web URL>/_api/social.feed/my/Feed/Post" endpoint.
function postToMyFeed() {
$.ajax( {
url: feedManagerEndpoint + "/my/Feed/Post",
type: "POST",
data: JSON.stringify( {
'restCreationData':{
'__metadata':{
'type':'SP.Social.SocialRestPostCreationData'
},
'ID':null,
'creationData':{
'__metadata':{
'type':'SP.Social.SocialPostCreationData'
},
'ContentText':'This post was published using REST.',
'UpdateStatusText':false
}
}
}),
headers: {
"accept": "application/json;odata=verbose",
"content-type":"application/json;odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val()
},
success: getMyFeed,
error: function (xhr, ajaxOptions, thrownError) {
alert("POST error:\\n" + xhr.status + "\\n" + thrownError);
}
});
}
// Get the current user's feed by using the
// "<app web URL>/_api/social.feed/my/Feed" endpoint.
function getMyFeed() {
$.ajax( {
url: feedManagerEndpoint + "/my/Feed",
headers: {
"accept": "application/json;odata=verbose"
},
success: feedRetrieved,
error: function (xhr, ajaxOptions, thrownError) {
alert("GET error:\\n" + xhr.status + "\\n" + thrownError);
}
});
}
// Parse the JSON data and iterate through the feed.
function feedRetrieved(data) {
var stringData = JSON.stringify(data);
var jsonObject = JSON.parse(stringData);
var feed = jsonObject.d.SocialFeed.Threads;
var threads = feed.results;
var feedContent = "";
for (var i = 0; i < threads.length; i++) {
var thread = threads[i];
var participants = thread.Actors;
var owner = participants.results[thread.OwnerIndex].Name;
feedContent += '<p>' + owner +
' said "' + thread.RootPost.Text + '"</p>';
}
$("#message").html(feedContent);
}
Дальнейшие действия
Дополнительные сведения о других конечных точках REST, которые можно использовать для доступа к функциям социальных ролей, см. в статье Справочник по REST API для веб-каналов социальных параметров для SharePoint и справочник по REST API для пользователей и содержимого .