【问题标题】:Node.js - NPM Twitter package - client.get issuesNode.js - NPM Twitter 包 - client.get 问题
【发布时间】:2016-09-19 20:27:52
【问题描述】:

我在接收来自 Twitter 的 get 调用的工作输出时遇到问题。

这是我的代码和产生的错误:

var twitter = require('twitter');

var twit = new twitter({
  consumer_key: '...', (removed keys and secrets)
  consumer_secret: '...',
  access_token_key: '...',
  access_token_secret: '...'
});

twit.get('trends/place', 1, function(error, data, response) {
  if(error) {
    throw error;
  }
  var parseTrend = JSON.parse(data);
  console.log(parseTrend);
});

这会杀死我的代码并引发以下“错误”:[object Object]

第二种get方法:

twit.get('search/tweets', {q: 'node.js'}, function(error, tweets, response) {
   var parseTrend = JSON.parse(tweets);
   console.log(parseTrend);
   console.log(tweets.length);
});

这会导致错误:状态代码:406

我的语法是否有问题,或者此时 npm 包的 get 方法可能存在问题?

值得注意的是,我也在使用 client.stream() 方法,该方法运行良好。 所以我认为我在密钥或 oAuth 方面没有任何问题。

还有其他人有问题吗?

【问题讨论】:

  • 我承认我只使用了 twit 模块。但根据文档,该模块似乎将对象的键/值对转换为 URL 参数。您是否尝试将 id 属性设置为 1 的对象作为 trends/place 调用的第二个参数传递?
  • 刚试过:twit.get('trends/place', {id: 1}, function(error, data, response) 但它返回了状态码:406 错误,就像其他 get 方法一样。
  • 也尝试了将属性作为字符串“{id: '1'},结果相同。
  • 好的,我刚刚使用 node-twitter 模块尝试了这两个调用,并且在我删除 JSON.parse 语句后它们在我这边运行良好。我应该注意,模块提供的响应已经是 JSON 格式的有效对象,因此 JSON.parse 调用应该抛出 Unexpected token o in JSON at position 1 错误。你确定你的钥匙一切都是正确的吗? (如果您的 client.stream 通话有效,我想它是有效的,但仔细检查不会有什么坏处。)
  • 我注释掉了JSON.parse语句,控制台日志确实输出了一些新信息,但随后又抛出了事件错误,状态为:406。新日志包含JSON数组:@ 987654332@然后报错。

标签: javascript node.js twitter get


【解决方案1】:

您对其他 Twitter 客户端是否也有同样的问题?有a lot of Twitter modules in Node,但并不是所有的都以相同的方式工作。

在其中一个模块出现奇怪问题后,我建议先尝试其他模块,看看问题是否仍然存在。

【讨论】:

    猜你喜欢
    • 2017-04-26
    • 1970-01-01
    • 2017-07-03
    • 2017-09-26
    • 1970-01-01
    • 2011-05-23
    • 2013-04-27
    • 1970-01-01
    • 2016-03-13
    相关资源
    最近更新 更多