获取meteorjs的用户关注者

时间:2013-03-06 20:12:41

标签: oauth twitter meteor

我试图通过我的meteorjs应用程序为已经过身份验证的用户获取关注者。我使用了{{loginButtons}}模板,并找到了用户令牌的位置。但是我现在必须手工创建我的授权请求,我希望这很容易。但它真的很难,我觉得我在浪费时间试图想出一种创建oauth_signature的方法。

欢迎任何帮助!

1 个答案:

答案 0 :(得分:2)

假设它是Twitter,你正在谈论我可能能够帮助你。 我只是设法做你想做的事情。

这段优秀的代码为Twitter API提供了一个客户端:https://github.com/mynetx/codebird-js 就个人而言,我已将其放在我的应用程序的server-folder中,以避免暴露密钥等。

由于codebird-js代码使用XMLHttpRequests而node.js默认情况下没有这样的功能 - 至少在meteor.js上下文中 - 你必须自己添加XHR功能。

这个NPM为我做了这件事:https://npmjs.org/package/xmlhttprequest 但是,由于您无法使用其他npm软件包部署您的meteor应用程序,因此我发现此解决方案How can I deploy node modules in a Meteor app on meteor.com?建议将其放在公用文件夹中。

最后,我在codebird-js的正下方添加了这些代码行 var Codebird = function () {

var require = __meteor_bootstrap__.require;
var path = require('path');
var fs = require('fs');
var base = path.resolve('.');
var isBundle = fs.existsSync(base + '/bundle');
var modulePath = base + (isBundle ? '/bundle/static' : '/public') + '/node_modules';
var XMLHttpRequest = require(modulePath + '/xmlhttprequest').XMLHttpRequest;

最后,您必须提供在dev.twitter.com上生成的令牌,并找到存储在Users集合中的用户令牌。

编辑:

如果您拥有上述内容,则可以创建一个新的Codebird对象:var bird = new Codebird(); 然后你设置标记:

bird.setToken(USER_ACCESS_TOKEN, USER_ACCESS_TOKEN_SECRET);

拨打电话:

bird.__call('friends/ids', {
   screen_name': SCREEN_NAME,
   user_id: TWITTER_ID
   }, 
   function(reply){
      console.log(reply);
   });

请注意USER_ACCESS_TOKENUSER_ACCESS_TOKEN_SECRETUSER_NAME&上例中的TWITTER_ID是占位符。它们都可以在Meteor Users集合中找到。