Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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
Api TypeError:无法读取未定义错误的属性“users”_Api_Url_Google Apps Script_Google Sheets_Instagram Api - Fatal编程技术网

Api TypeError:无法读取未定义错误的属性“users”

Api TypeError:无法读取未定义错误的属性“users”,api,url,google-apps-script,google-sheets,instagram-api,Api,Url,Google Apps Script,Google Sheets,Instagram Api,我已经编写了代码: function getId(username) { var infoUrl = "https://www.instagram.com/web/search/topsearch/?context=user&count=0&query=" + username return parseInt(fetch(infoUrl)['users']); } function fetch(url) { var ignoreError = {

我已经编写了代码:

function getId(username) {
  var infoUrl = "https://www.instagram.com/web/search/topsearch/?context=user&count=0&query=" + username
  return parseInt(fetch(infoUrl)['users']);
}

function fetch(url) {
  var ignoreError = {
    "muteHttpExceptions": true
  };
  var source = UrlFetchApp.fetch(url, ignoreError).getContentText();
  var data = console.log(source);
  return data;
 }
获取用户名输入的用户ID。 错误对应于以下行:

return parseInt(fetch(infoUrl)['users']);
我试过不同的方法,但都不能成功。url将导致一个如下所示的页面:

{"users": [{"position": 0, "user": {"pk": "44173477683", "username": "mykindofrock", "full_n........
其中,pk:之后的数字44173477683是我试图获得的输出

我希望有人能帮助我,因为我的能力非常有限,但我想这就是我们学习的方式!:

您正在将数据设置为未定义的console.logsource的返回值。因此,无论数据是什么,您都将得到未定义的数据。
另一件要避免的事情是fetch不一定会被提升,因为fetch是一个内置函数,用于进行API调用。

我很惊讶您提供的端点实际上导致了一个JSON文件。我原以为要访问Instagram API,您需要在Facebook等网站上注册一个开发人员帐户。不过,它通过访问浏览器返回JSON。我想它只是显示每个用户的公开信息

然而,对于应用程序脚本来说,情况似乎有所不同。我访问了:

https://www.instagram.com/web/search/topsearch/?context=user&count=0&query=user
在浏览器中,选择一个随机用户id。然后我使用URLFACHTAPP从应用程序脚本调用它:

功能测试{ var username=username7890543216 var infoUrl=https://www.instagram.com/web/search/topsearch/?context=user&count=0&query= +用户名 变量选项={ “muteHttpExceptions”:true } var result=UrlFetchApp.fetchinfoUrl,选项 console.logresult.getResponseCode } 返回429响应。这是一个太多的请求响应。所以,如果我不得不猜测的话,我会说,从应用程序脚本到这个未经验证的端点的所有请求都已被阻止。这就是为什么在将console.logresult.getResponseCode替换为console.logresult.getContentText时,会加载HTML而不是JSON部分,其中说明:

未找到页面•一款图片分享应用
虽然它可能是基于IP的。请尝试从您的终端运行此代码,除非您得到200的响应代码,否则您很可能无法从应用程序脚本访问此信息。

var data=console.logsource;console.log没有返回值,这意味着您返回的数据是undefined@KrzysztofKrzeszewski-您知道如何解决此问题,或者我可以从哪里了解如何解决此问题,因为我不知道该部分正在做什么!:@RuanMartinelli这是谷歌应用程序脚本,不是javascript,所以你说的是incorrect@RuanMartinelli对不起,我想这可能是我的错,因为我认为我把javascript放在了tags@louisgeorge尝试简单地返回源代码,而不是从fetch函数返回数据变量,这可能会解决您的问题