我试图从包含人名的电子表格中找到Twitter句柄。使用Google Apps脚本和Twitter API搜索Twitter句柄 - 不起作用
我不能得到它与这个请求,我相信是我应该使用的,因为我只有人的名字(例如亚当斯密):api.twitter.com/1.1/users/search.json q =
我得到以下错误:
Request failed for api.twitter.com/1.1/users/search.json?q=Name returned code 403. Truncated server response: {"errors":[{"message":"Your credentials do not allow access to this resource","code":220}]} (use muteHttpExceptions option to examine full response) (line 38).'
我试图寻找这个错误,但是这并没有帮助我这么远。
如果我使用,例如,这个要求,它的工作原理:api.twitter.com/1.1/users/show.json?screen_name=
这样我就可以得到SCREEN_NAME回在电子表格中,但是这显然是没有意义的,因为它需要屏幕名称才能工作...
整个事情是基于this work,该代码中的所有请求都适合我。只是这个搜索请求不起作用。出了什么问题?
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限制
我明白了,谢谢!我正在努力寻找如何在GAS中做到这一点的例子,尽管可能不得不放弃这个想法。 – touto