Я знаю, как вставлять фид с определенным идентификатором. Я уже сделал это. Теперь я хотел бы реализовать следующие функции: если пользователь получает личное сообщение, он появится во встроенной фиде. Лучшим вариантом, на мой взгляд, было бы встроить все «окно чата», но я не нашел ни одного образца кода в Интернете. Как я могу это сделать?Как встраивать личные сообщения на мой сайт?
ответ
Вы не можете вставлять личные сообщения, как вы можете, с помощью фидов, потому что YEST REST API (включая частные сообщения) требуют аутентификации через OAuth 2.0. Это означает, что вам необходимо создать приложение Yammer API, которое попросит ваших пользователей войти в систему и позволить вам получить доступ к их сообщениям. Общая концепция, описанная в их документации here и here.
Yammer предоставляет несколько SDK, которые вы можете использовать, одним из них является Javascript SDK. Я собрал простой пример того, как вы можете попросить пользователей войти в систему, а затем отобразит их личные сообщения. Имейте в виду, это очень простое решение, я просто проверил его на одном индивидуальном разговоре.
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript" data-app-id="YOUR-APP-CLIENT-ID" src="https://c64.assets-yammer.com/assets/platform_js_sdk.js"></script>
</head>
<body>
<span id="yammer-login"></span>
<div id="messages"></div>
<script>
yam.connect.loginButton('#yammer-login', function (resp) {
if (resp.authResponse) {
document.getElementById('yammer-login').innerHTML = 'Welcome to Yammer!';
}
});
var msgdiv = document.querySelector("#messages");
yam.getLoginStatus(
function(response) {
if (response.authResponse) {
console.log("logged in");
var myId = response.authResponse.user_id;
yam.platform.request({
url: "messages/private.json",
method: "GET",
success: function (response) {
console.log("The request was successful.");
var usernames = {};
response.references.forEach(function(ref){
if(ref.type === "user") {
usernames[ref.id] = ref.full_name;
}
});
response.messages.forEach(function(message){
var msg = document.createElement("span");
msg.innerHTML = usernames[message.sender_id] + ": " + message.body.parsed + "<br/>";
msgdiv.appendChild(msg);
})
},
error: function (response) {
console.log("There was an error with the request.");
console.dir(private);
}
});
}
else {
console.log("not logged in")
}
}
);
</script>
</body>
</html>
Ответ от API конечной messages/private.json
является JSON-файл, который вы можете пройти. Он содержит информацию о сообщении и пользователях, участвующих в разговоре.
Вы посмотрели на [Yammer API] (https://developer.yammer.com/)? Вот специальная страница с запросом [личные сообщения] (https://developer.yammer.com/docs/messagesprivatejson). – pll33
Ну, да, но их документация не объясняет, как его использовать. Они не предоставили фрагмент кода или рабочий пример –