2013-03-06 30 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集合中找到。

相關問題