使用Google Apps脚本和Twitter API搜索Twitter句柄-不';行不通

使用Google Apps脚本和Twitter API搜索Twitter句柄-不';行不通,twitter,google-apps-script,google-sheets,Twitter,Google Apps Script,Google Sheets,我试图从包含人名的电子表格中找到Twitter句柄 我不能让它与这个请求一起工作,我认为这是我应该使用的,因为我只有人名(例如Adam Smith):api.twitter.com/1.1/users/search.json?q= 我得到以下错误: 请求api.twitter.com/1.1/users/search.json失败?q=Name返回代码403。截断的服务器响应:{“errors”:[{“message”:“您的凭据不允许访问此资源”,“code”:220}]}(使用muteHtt

我试图从包含人名的电子表格中找到Twitter句柄

我不能让它与这个请求一起工作,我认为这是我应该使用的,因为我只有人名(例如Adam Smith):api.twitter.com/1.1/users/search.json?q=

我得到以下错误:

请求api.twitter.com/1.1/users/search.json失败?q=Name返回代码403。截断的服务器响应:{“errors”:[{“message”:“您的凭据不允许访问此资源”,“code”:220}]}(使用muteHttpExceptions选项检查完整响应)(第38行)。'

我已尝试搜索此错误,但迄今为止对我没有帮助

例如,如果我使用这个请求,它可以工作:api.twitter.com/1.1/users/show.json?screen_name=

所以我可以在电子表格中重新获得屏幕名称,但这显然是毫无意义的,因为它首先需要屏幕名称来工作

整个事情都是基于,代码中的所有请求都对我有效。只是这个搜索请求不起作用。怎么了

var CONSUMER_KEY = 'x';
var CONSUMER_SECRET =   'x';


function getTwitterHandles(name) {

// Encode consumer key and secret
var tokenUrl = "https://api.twitter.com/oauth2/token";
var tokenCredential = Utilities.base64EncodeWebSafe(
CONSUMER_KEY + ":" + CONSUMER_SECRET);

 //  Obtain a bearer token with HTTP POST request
 var tokenOptions = {
headers : {
 Authorization: "Basic " + tokenCredential,
 "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8" 
 },
 method: "post",
 payload: "grant_type=client_credentials"
 };

 var responseToken = UrlFetchApp.fetch(tokenUrl, tokenOptions);
 var parsedToken = JSON.parse(responseToken);
 var token = parsedToken.access_token;

 // Authenticate Twitter API requests with the bearer token
 var apiUrl = 'https://api.twitter.com/1.1/users/search.json?q=screen_name='+name;
var apiOptions = {
headers : {
 Authorization: 'Bearer ' + token
},
"method" : "get"
};

var responseApi = UrlFetchApp.fetch(apiUrl, apiOptions);
var result = "";
if (responseApi.getResponseCode() == 200) {

// Parse the JSON encoded Twitter API response
var tweets = JSON.parse(responseApi.getContentText());
return tweets.id
}
Logger.log(result);
}

编辑:由于URL限制,多次删除https

您无法使用仅应用程序身份验证(承载令牌)搜索用户。看见该请求需要用户上下文(访问令牌)。您可以从获取自己的访问令牌。

您不能使用仅应用程序身份验证(承载令牌)搜索用户。看见该请求需要用户上下文(访问令牌)。您可以从获得自己的访问令牌。

我知道了,谢谢!我正在努力寻找如何在气体中实现这一点的例子,但可能不得不放弃这个想法。我明白了,谢谢!我正在努力寻找如何在气体中做到这一点的例子,尽管如此,我可能不得不放弃这个想法。