Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用RESTAPI和Yammer用户ID获取Yammer用户信息_Javascript_Rest_Yammer - Fatal编程技术网

Javascript 如何使用RESTAPI和Yammer用户ID获取Yammer用户信息

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

我正在使用Yammer REST API来获取用户信息,当我硬编码Yammer API时,这些信息非常有效

我试图使用一个输入框,以便脚本更加灵活,但在将用户id变量传递给Yammer API时,我一直遇到问题

因为我从一个函数传递到另一个函数,所以它不起作用,有人建议我使用localStorage,但这似乎与变量有相同的问题。 我想知道我做错了什么

<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调用的,以检查用户是否登录。如果您想调用该函数,这将有所帮助