2016-05-06 6 views
5

Я знаю, как вставлять фид с определенным идентификатором. Я уже сделал это. Теперь я хотел бы реализовать следующие функции: если пользователь получает личное сообщение, он появится во встроенной фиде. Лучшим вариантом, на мой взгляд, было бы встроить все «окно чата», но я не нашел ни одного образца кода в Интернете. Как я могу это сделать?Как встраивать личные сообщения на мой сайт?

+1

Вы посмотрели на [Yammer API] (https://developer.yammer.com/)? Вот специальная страница с запросом [личные сообщения] (https://developer.yammer.com/docs/messagesprivatejson). – pll33

+0

Ну, да, но их документация не объясняет, как его использовать. Они не предоставили фрагмент кода или рабочий пример –

ответ

2

Вы не можете вставлять личные сообщения, как вы можете, с помощью фидов, потому что 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-файл, который вы можете пройти. Он содержит информацию о сообщении и пользователях, участвующих в разговоре.

Смежные вопросы