我正在尝试按照此处的说明制作Yammer API请求:https://developer.yammer.com/yammer-sdks/#javascript-sdk。当我运行这个例子时:
yam.getLoginStatus(
function(response) {
if (response.authResponse) {
console.log("logged in");
yam.platform.request({
url: "https://www.yammer.com/api/v1/users.json", //this is one of many REST endpoints that are available
method: "GET",
data: { //use the data object literal to specify parameters, as documented in the REST API section of this developer site
"letter": "a",
"page": "2",
},
success: function (user) { //print message response information to the console
alert("The request was successful.");
console.dir(user);
},
error: function (user) {
alert("There was an error with the request.");
}
});
}
else {
alert("not logged in")
}
}
);
我在localhost上这样做,我收到了以下错误:
"XMLHttpRequest cannot load https://www.yammer.com/api/v1/users.json?letter=a&page=2&_=1401954073159. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access."
知道如何解决这个问题吗?
还有一件事。我无法在此指定其他标头,因为此调用是作为'OPTIONS'而不是'GET'请求方法执行的。
希望有人对Yammer最新的API有同样的问题,并且能够解决它。
由于
答案 0 :(得分:3)
请务必更新您的Yammer应用程序JS Origins以匹配您正在测试的环境主机名。
您可以在此链接配置这些来源:
https://www.yammer.com/client_applications
点击您的应用程序,然后点击"基本信息"。
答案 1 :(得分:1)
使用主机名“api.yammer.com”代替“www.yammer.com”。我相信文档需要更新,我会更新。
或者,您可以使用yam.platform.request('users.json')
代替yam.request('https://api.yammer.com/api/v1/users.json')
,而不必使用主机名进行调整。
答案 2 :(得分:0)
将您的应用程序网址添加到yammer应用程序basicinfo中的“Javascript Origins”。