2013-03-06 29 views
0

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

任何帮助,欢迎!

回答

2

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

这个漂亮的代码提供了一个客户到Twitter API:https://github.com/mynetx/codebird-js 个人而言,我已经把它在server-folder在我的应用程序,以避免按键的曝光等

由于codebird-js代码采用开放式的XMLHttpRequest和node.js默认没有这样的功能 - 至少在meteor.js上下文中 - 你必须自己添加XHR功能。

这NPM为我做:https://npmjs.org/package/xmlhttprequest 然而,正如你不能部署额外的NPM包,我发现这个解决方案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,找到存储在用户的令牌线以下用户集合。

编辑:

Whenenver你有以上你犯了一个新的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 &上例中的是占位符。它们都可以在Meteor Users集合中找到。

相关问题