Tom*_*zyk 5 javascript embed yammer
我知道如何嵌入具有特定ID的Feed.我已经做到了.现在,我想实现以下功能:如果用户收到私人消息,它将显示在嵌入式Feed中.我认为最好的选择是嵌入整个"聊天窗口",但我没有在网上找到单个代码示例.我怎样才能做到这一点?
您无法像嵌入源那样真正嵌入私人消息,因为 Yammer 的 REST API(包括私人消息)需要通过 OAuth 2.0 进行身份验证。这意味着您必须创建一个 Yammer API 应用程序,它将要求您的用户登录并允许您访问他们的消息。其总体概念在其文档中进行了描述(此处和此处)。
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>
Run Code Online (Sandbox Code Playgroud)
来自 API 端点的响应messages/private.json是一个您可以查看的 JSON 文件。它包括有关消息和对话中涉及的用户的信息。
| 归档时间: |
|
| 查看次数: |
512 次 |
| 最近记录: |