首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用google script搜索twitter用户名时出现授权错误

使用google script搜索twitter用户名时出现授权错误
EN

Stack Overflow用户
提问于 2019-06-27 03:49:59
回答 1查看 94关注 0票数 1

我一直在使用下面的google脚本来关注twitter用户,它工作得很好。

代码语言:javascript
运行
复制
var twitterKeys= {
 TWITTER_CONSUMER_KEY: "xxx",
 TWITTER_CONSUMER_SECRET: "xxxx",
 TWITTER_ACCESS_TOKEN: "xxxx",
 TWITTER_ACCESS_SECRET: "xxxx"    
};

var props = PropertiesService.getScriptProperties();

props.setProperties(twitterKeys);

var twit = new Twitter.OAuth(props);

var service = new Twitter.OAuth(props);

if ( service.hasAccess() ) {


var url = 'https://api.twitter.com/1.1/friendships/create.json';
var payload = {
  screen_name: 'username',
};

var response = service.fetch(url, {
  method: 'post',
  payload: payload
});

var result = JSON.parse(response.getContentText());
Logger.log(JSON.stringify(result, null, 2)); 

} 

}

我现在想搜索推特用户名,所以遵循了这里给出的信息:https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-users-search

我修改了我的代码,更改了API url,更改了有效负载,并将方法从'post‘更改为'get’。

下面是我现在拥有的代码:

代码语言:javascript
运行
复制
var twitterKeys= {
 TWITTER_CONSUMER_KEY: "xxx",
 TWITTER_CONSUMER_SECRET: "xxxx",
 TWITTER_ACCESS_TOKEN: "xxxx",
 TWITTER_ACCESS_SECRET: "xxxx"    
};

var props = PropertiesService.getScriptProperties();

props.setProperties(twitterKeys);

var twit = new Twitter.OAuth(props);

var service = new Twitter.OAuth(props);

if ( service.hasAccess() ) {
var url = 'https://api.twitter.com/1.1/users/search.json';
var payload = {
  q: 'test',
};
var response = service.fetch(url, {
  method: 'get',
  payload: payload
});
var result = JSON.parse(response.getContentText());
Logger.log(JSON.stringify(result, null, 2)); 

} 

}

它不工作,我得到以下错误:

https://api.twitter.com/1.1/users/search.json请求失败,返回代码401。截断的服务器响应:{“错误”:{“代码”:32,“消息”:“无法对您进行身份验证。”}}(使用muteHttpExceptions选项检查完整响应)(第450行,文件“服务”,项目"Twitter lib")

现在我已经以类似的方式修改了这段代码几次(例如,让用户静音),它工作得很好。

你知道为什么它会失败吗?

EN

回答 1

Stack Overflow用户

发布于 2019-06-27 20:57:40

您要获取的URL有问题,根据GET users/searchTwitter documentation,需要在请求中将q参数作为https://api.twitter.com/1.1/users/search.json?q=searchTerm发送。

您发布的获取请求没有以正确的格式发送请求。您可以通过手动设置fetch请求中的q参数来解决此问题:

代码语言:javascript
运行
复制
var url = 'https://api.twitter.com/1.1/users/search.json'
var username = 'username'
var q = '?q=' + username

var response = service.fetch(url + q, {
  method: 'get',
  });    

var result = JSON.parse(response.getContentText());
    Logger.log(JSON.stringify(result, null, 2)); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56780055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档