【问题标题】:Twitter API user timeline extraction in Node.JsNode.Js 中的 Twitter API 用户时间线提取
【发布时间】:2014-10-06 19:03:01
【问题描述】:

我目前使用twit node.js 模块,虽然它运行良好,但我遇到了一个问题。

我希望能够提取我的应用的授权用户发布的推文。当我使用 twit 模块在 Twitter 中授权时,我发送以下数据:

var T = new Twit({
    consumer_key:         'xxxx'
    , consumer_secret:      'xxxx'
    , access_token:         'xxxx'
    , access_token_secret:  'xxxx'
});

假设我通过护照模块或类似的方式授权该用户 - 我需要在上面替换哪些数据才能获得我想要的结果?

谢谢!

【问题讨论】:

    标签: javascript node.js twitter twitter-oauth


    【解决方案1】:

    登录 twitter,然后转到 dev.twitter.com 并找到“管理您的应用程序”链接,它会将您重定向到 apps.twitter.com,在那里您将找到“创建新应用程序”按钮,单击它然后填写表格。创建应用程序后,转到您创建的应用程序并转到“密钥和访问令牌”选项卡并单击“生成消费者密钥和秘密”现在复制“消费者密钥”“消费者秘密”“访问令牌”“访问令牌秘密”和输入你的代码。

    如果您使用护照身份验证,请使用以下代码获取登录用户的“访问令牌”和“访问令牌秘密”

    var mongoose = require('mongoose'),
        Schema = mongoose.Schema;
    
    var TWITTER_CONSUMER_KEY = "your consumer key got from above steps";
    var TWITTER_CONSUMER_SECRET = "your consumer key secret got from above steps ";
    
    var UserSchema = new Schema({
    provider: String,
    uid: String,
    name: String,
    image: String,
    token: String,
    tokenSecret: String,
    created: {type: Date, default: Date.now}
    });
    
    mongoose.connect(mongooseConnectionString);
    mongoose.model('User', UserSchema);
    
    var User = mongoose.model('User');
    
    passport.use(new TwitterStrategy({
    consumerKey: TWITTER_CONSUMER_KEY,
    consumerSecret: TWITTER_CONSUMER_SECRET,
    callbackURL: twitterCallBackUrl
    },
    function(token, tokenSecret, profile, done) {
    User.findOne({uid: profile.id}, function(err, user) { //check if the user profile is already     present in the database
      if(user) { //if profilie is already present then do nothing
        done(null, user);
      } else {  //else save user profile and tokens in the database
        var user = new User();
        user.provider = "twitter";
        user.uid = profile.id;
        user.name = profile.displayName;
        user.image = profile._json.profile_image_url;
        user.token = token;
        user.tokenSecret = tokenSecret;
        user.save(function(err) {
          if(err) { throw err; }
          done(null, user);
         });
       }
      })
     }
    ));
    

    我假设您已经是护照模块,因此您可以自己管理其余代码

    【讨论】:

      猜你喜欢
      • 2013-12-11
      • 2013-06-13
      • 1970-01-01
      • 2015-03-11
      • 2014-05-04
      • 2013-07-22
      • 1970-01-01
      • 2017-07-02
      • 1970-01-01
      相关资源
      最近更新 更多