【问题标题】:Meteor Twitter Help (Meteor NOOB)流星推特帮助(流星 NOOB)
【发布时间】:2015-08-22 08:36:26
【问题描述】:

我刚开始学习 MeteorJS,在完成教程后,我决定尝试使用 Twitter API。最初,我遵循本教程

http://artsdigital.co/exploring-twitter-api-meteor-js/

完成后,我想做的是从推文中抓取数据并将其显示在客户端。

N/A = 正确的身份验证

这是我写的代码:

if (Meteor.isClient) {
    Session.setDefault('screen_name', 'John');
    Template.hello.helpers({
       screen_name: function () {
          return Session.get('screen_name');
       }
    });

    Template.hello.events({
      'click button': function () {

       T.get('search/tweets',
       {
          q: '#UCLA',
          count: 1
       },
       function(err,data,response) {
          var user_name = data.statuses[0].users.screen_name;
          Session.set('screen_name', user_name);
       }
    )
  }
 });
}

if (Meteor.isServer) {
   Meteor.startup(function () {
// code to run on server at startup

var Twit = Meteor.npmRequire('twit');

 var T = new Twit({
     consumer_key:         'N/A', // API key
     consumer_secret:      'N/A', // API secret
     access_token:         'N/A', 
     access_token_secret:  'N/A'
   });
 });
}

我认为问题在于,“点击按钮”功能,“T”被视为未定义,因此编译器不知道它是什么或它来自哪里。这个想法确实在我的脑海中引发了一个想法,将我写在里面的东西移动了

if (Meteor.isServer)  to  if (Meteor.isClient)

但无济于事。它没有用。我的推理是,一旦 Meteor 启动,服务器就会启动,所以如果服务器声明变量 T,我们不应该也能够在客户端访问它吗?

我不确定我的方法是否正确/不知道 Meteor/Meteor NOOB 的约定..所以如果有人可以帮助我,我们将不胜感激! 谢谢!

【问题讨论】:

  • 有些代码在您的服务器上运行,有些代码在您的浏览器(客户端)中运行。所以如果你想使用T服务器端和客户端,你必须在一个公共部分(isServerisClient之外)定义它,这样客户端和客户端服务器运行它。不过,不确定您是否正确使用了 API。另外,看看Meteor docs
  • @Oskar 我实际上也是这么想的,并且也尝试过,但我收到了错误 Meteor.npmRequire is not a function。 API 的语法是正确的,我可以向你保证。我按照我帖子中发布的链接中的教程以及 REST API 调用的方式进行操作。此外,将 API 密钥放在 isServer 之外将使其公开供公众查看,这并不令人寒心
  • 客户端没有定义,可以使用meteor方法和meteor调用从客户端调用。

标签: twitter meteor


【解决方案1】:

你在你的“T”变量前面放了一个“var”声明。这会将范围绑定到应用程序的服务器端上下文。我敢打赌,如果您摆脱了 var 并将“T”设为全局,那么您也可以从客户端访问它。

【讨论】:

    猜你喜欢
    • 2016-08-19
    • 1970-01-01
    • 2015-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-10
    • 2012-12-01
    • 2016-04-06
    相关资源
    最近更新 更多