2016-05-06 16 views
5

Ich kann einen Feed einbetten, der eine bestimmte ID hat. Ich habe es schon getan. Jetzt möchte ich die folgende Funktionalität implementieren: Wenn ein Benutzer eine private Nachricht erhält, wird es in einem eingebetteten Feed angezeigt. Die beste Option wäre meiner Meinung nach, das gesamte "Chat-Fenster" einzubetten, aber ich habe kein einziges Codebeispiel im Internet gefunden. Wie kann ich das machen?Wie kann ich Yammer private Nachrichten auf meiner Website einbetten?

+1

Haben Sie sich die [Yammer API] (https://developer.yammer.com/) angesehen? Hier finden Sie eine bestimmte Seite zum Anfordern von [private Nachrichten] (https://developer.yammer.com/docs/messageprivatejson). – pll33

+0

Nun, ich habe, aber ihre Dokumentation erklärt nicht genau, wie man es benutzt. Sie haben kein Code-Snippet oder ein funktionierendes Beispiel bereitgestellt –

Antwort

2

Sie können private Nachrichten nicht so einbetten, wie Sie es mit Feeds können, da die REST-APIs von Yammer (einschließlich privater Nachrichten) die Authentifizierung über OAuth 2.0 erfordern. Das bedeutet, dass Sie eine Yammer-API-Anwendung erstellen müssen, die Ihre Benutzer auffordert, sich anzumelden und Ihnen den Zugriff auf ihre Nachrichten zu ermöglichen. Das Gesamtkonzept davon ist in ihrer Dokumentation here und here beschrieben.

Yammer bietet mehrere SDKs, die Sie verwenden können, eines davon ist das Javascript SDK. Ich habe ein einfaches Beispiel dafür erstellt, wie Sie Benutzer zur Anmeldung auffordern können, und dann werden ihre privaten Nachrichten angezeigt. Wohlgemerkt, das ist eine sehr einfache Lösung, ich habe es gerade in einer einzigen Eins-zu-eins-Konversation getestet.

<!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> 

Die Antwort des messages/private.json API-Endpunkt ist eine JSON-Datei, die Sie durchlaufen können. Es enthält Informationen über die Nachricht und die an der Konversation beteiligten Benutzer.

Verwandte Themen