【问题标题】:Search by location in Twitter using nodejs使用 nodejs 在 Twitter 中按位置搜索
【发布时间】:2019-12-27 08:10:00
【问题描述】:

我正在尝试根据位置搜索推文

我已经编写了以下代码以通过标签进行搜索

Twitter.get('search/tweets', {  q: '#javascript since:7 days', count: 100 }, function (err, data, response) {
      if(!err) { res.send(data.statuses); }
      })

与我尝试在以下数据中按位置搜索的方式相同。我没有找到合适的关键字来按位置搜索。

 { statuses:
  [ { created_at: 'Mon Aug 19 03:01:56 +0000 2019',
   id: 1163284936125759500,
   id_str: '1163284936125759490',
   text:
    'THE <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="7019343f3c3d3023243522">',
   truncated: true,
   entities: [Object],
   metadata: [Object],
   source:
    '<a href="http://twitter.com/download/android" rel="nofollow">Twitter for Android</a>',
   in_reply_to_status_id: null,
   in_reply_to_status_id_str: null,
   in_reply_to_user_id: null,
   in_reply_to_user_id_str: null,
   in_reply_to_screen_name: null,
   user: [Object],
   geo: null,
   coordinates: null,
   place: null,
   contributors: null,
   is_quote_status: false,
   retweet_count: 0,
   favorite_count: 1,
   favorited: false,
   retweeted: false,
   lang: 'en' }]}

我们如何搜索。请帮忙

【问题讨论】:

    标签: javascript node.js twitter passport.js passport-twitter


    【解决方案1】:

    Twitter API 允许您指定 geocode 参数来搜索位于给定纬度/经度的给定半径的用户的推文。参数值由“latitude,longitude,radius”指定,其中半径单位必须指定为“mi”(英里)或“km”(公里)。

    Twitter API docs有更多细节

    // Look for tweets from users within 100km of London
    let loc = "51.5074,0.1278,100km";
    Twitter.get('search/tweets', {  q: '#javascript since:7 days', geocode: loc, count: 10 }, function (err, data, response) {
        if(!err) { res.send(data.statuses); }
    })
    

    您还可以查看返回的推文对象的 user.location 属性(例如 tweet.user.location)。

    【讨论】:

      猜你喜欢
      • 2010-12-29
      • 2014-04-27
      • 2012-01-12
      • 1970-01-01
      • 2012-01-22
      • 2016-02-19
      • 2018-08-21
      • 1970-01-01
      • 2018-06-29
      相关资源
      最近更新 更多