Javascript 如何使用RESTAPI和Yammer用户ID获取Yammer用户信息
我正在使用Yammer REST API来获取用户信息,当我硬编码Yammer API时,这些信息非常有效 我试图使用一个输入框,以便脚本更加灵活,但在将用户id变量传递给Yammer API时,我一直遇到问题 因为我从一个函数传递到另一个函数,所以它不起作用,有人建议我使用localStorage,但这似乎与变量有相同的问题。 我想知道我做错了什么Javascript 如何使用RESTAPI和Yammer用户ID获取Yammer用户信息,javascript,rest,yammer,Javascript,Rest,Yammer,我正在使用Yammer REST API来获取用户信息,当我硬编码Yammer API时,这些信息非常有效 我试图使用一个输入框,以便脚本更加灵活,但在将用户id变量传递给Yammer API时,我一直遇到问题 因为我从一个函数传递到另一个函数,所以它不起作用,有人建议我使用localStorage,但这似乎与变量有相同的问题。 我想知道我做错了什么 <html> <head> </head> <body> <form id
<html>
<head>
</head>
<body>
<form id="frm1" action="#" method="post">
Yammer ID: <input type="text" name="y_id"><br><br>
<input type="submit" onclick="yam_inp()" value="Submit">
</form>
<span id="yammer-login"></span>
<script type="text/javascript" data-app-id="bdlZbJHCm1RY8pMUbuoBlQ" src="https://c64.assets-yammer.com/assets/platform_js_sdk.js"></script>
<script>
function yam_inp() {
frm_i=document.getElementById("frm1");
//result=frm_i.elements[0].value; //unable to pass from funtion to function so using local storage
localStorage.yammer_id=frm_i.elements[0].value; // line 23, Unable to set property 'yammer_id' of undefined or null reference
//localStorage.setItem("yammer_id", frm_i.elements[0].value);
alert (result);
}
yam.getLoginStatus(
function (response) {
if (response.authResponse) {
console.log("logged in");
yam.platform.request({
url: "users/"+localStorage.yammer_id+".json", //line 32, Unable to get property 'yammer_id' of undefined or null reference
method: "GET",
data: {
"User_Id": localStorage.yammer_id,
},
success: function (user) { //print message response information to the console
// alert("The request was successful.");
//str = JSON.stringify(user);
str = JSON.stringify(user, null, 4); // (Optional) beautiful indented output.
document.write(str);
//console.dir(user);
},
error: function (user) {
alert("There was an error with the request.");
}
});
}
else {
alert("not logged in")
}
}
);
</script>
Yammer ID:
函数yam_inp(){
frm_i=document.getElementById(“frm1”);
//result=frm_i.elements[0]。value;//无法从函数传递到函数,因此使用本地存储
localStorage.yammer\u id=frm\u i.elements[0]。value;//第23行,无法设置未定义或空引用的属性“yammer\u id”
//setItem(“yammer_id”,frm_i.elements[0].value);
警报(结果);
}
山药(
功能(响应){
if(response.authResponse){
控制台日志(“登录”);
yam.platform.request({
url:“users/”+localStorage.yammer_id+“.json”//第32行,无法获取未定义或空引用的属性“yammer_id”
方法:“获取”,
数据:{
“用户Id”:localStorage.yammer\u Id,
},
成功:函数(用户){//将消息响应信息打印到控制台
//警报(“请求成功”);
//str=JSON.stringify(用户);
str=JSON.stringify(user,null,4);//(可选)漂亮的缩进输出。
文件编写(str);
//console.dir(用户);
},
错误:函数(用户){
警报(“请求有错误。”);
}
});
}
否则{
警报(“未登录”)
}
}
);
我一直在获取第32行:
无法获取未定义或空引用的属性“yammer_id”
,这是我在localStorage之前使用结果变量得到的,因此这违背了localStorage的目标,除非我没有正确使用它。yam.getLoginStatus在yam_inp()之前被调用因此,当时没有定义localStorage.yammer_id。它仅在yam_inp()中定义。因此,如果您使用输入字段设置id调用,请仅在yam_inp()之后调用函数yam.getLoginStatus谢谢您的回复,我如何在yam_inp()之后调用yam.getLoginStatus?它看起来不像一个普通函数,它没有函数参数,更像是一个以;结尾的语句;。我尝试从yam_inp()调用它,但失败了,因为我猜这就是发生的事情。我认为它是从js调用的,以检查用户是否登录。如果您想调用该函数,这将有所帮助