【发布时间】:2014-12-22 13:43:59
【问题描述】:
我们目前正在将 Yammer 集成到我们的公司 SharePoint Intranet 中,为此我们使用 Yammer Javascript SDK。
当用户接受我们的自定义 Yammer 应用程序时,我们会将返回的令牌存储在用户配置文件中,以便下次我们可以使用 SDK,而无需用户再次登录。对于后续登录,我们使用 JavaScript SDK 中的 yam.platform.setAuthToken 方法。
这曾经适用于我们公司使用的所有浏览器,包括 IE 8-11 和 Chrome。不知何故,它在 IE 8 和 IE 9 中停止工作,我们不确定原因。
我们已在以下 sn-p 中隔离了该问题:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" data-app-id="[OUR-APP-ID]" src="https://c64.assets-yammer.com/assets/platform_js_sdk.js"></script>
<script type="text/javascript">
$(document).ready(function () {
var $result = $("#result");
var $details = $("#details");
try {
$result.append("running...<br/>");
yam.platform.setAuthToken("[VALID-USER-TOKEN]", function (response) {
$result.append("response received...<br/>");
$details.append("Status: " + response.status + "</br>");
if (response.authResponse) {
$result.append("SUCCESS!");
$details.append("Network name: " + response.access_token.network_name + "</br>");
$details.append("User ID: " + response.access_token.user_id + "</br>");
$details.append("Token: " + response.access_token.token + "</br>");
} else {
$result.append("FAIL!");
}
});
} catch (e){
$result.html("EXCEPTION!");
$details.html(e);
}
});
</script>
</head>
<body>
<h1>Yammer JS SDK</h1>
<div>
Setting authentication token... Status:<br/>
<span id="result" style="color: #00f;">init...<br/> </span>
</div>
<h2>Details:</h2>
<div id="details"></div>
</body>
</html>
通过使用 IE 11,您可以使用开发工具栏 (F12) 切换浏览器版本。从 IE 11 切换到 10、9 和 8,我们看到 IE 11 和 10 都可以正常工作,但 IE 9 和 8 失败。
setAuthToken函数的ajax调用似乎失败了,但没有给出解释;它只是返回“未连接”。 我们确信问题与 Javascript 起源无关,因为这些在我们的应用配置中设置正确,并且上述 sn-p 在 IE 10、IE 11 和 Chrome 中完美运行。
Yammer 是否更新了他们的 SDK,移除了对 IE 8 和 IE 9 的支持,还是我们在这里遗漏了什么?请帮助我们!
【问题讨论】:
标签: javascript sharepoint yammer