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函数返回数据变量,这可能会解决您的问题