2012-11-07 48 views
5

我有一個Meteor和Twitter的小問題。 我想要做的就是通過點擊一個按鈕發佈推文。爲此,我必須通過Oauth向Twitterservice驗證自己。如何發佈Meteor.js,Twitter和Oauth的推文

目前我正在以一種非常複雜的方式從客戶端到服務器端進行身份驗證並返回。但是現在我發現了Meteor.loginWithTwitter函數。最初我以爲這個功能只是用Twitterkeys將你登錄到你自己的應用程序中,現在我不再那麼肯定了。也許我也可以用它來解決我的問題。因爲看起來Oauth-Process完全(並且以一種簡單的方式)在Meteor中實現。

可悲的是,我無法找到任何文檔或示例登錄並獲得最終的oauth_token。所以所有我從流星迴來,然後我嘗試下面的代碼,這是errormessage的:

Erromessage:Accounts.ConfigError {消息:「服務未配置」}

Meteor.loginWithTwitter(function(err){ 
    if (err){ 
    console.log(err) 
    }else{ 
    console.log("yeah"); 
} 
}); 

我知道我必須進入某處我的Appinformation像Consumer key,但我不知道在哪裏。有人能幫我解決問題,並且知道一些例子嗎?或者知道我是否在正確的軌道上?

感謝和問候 菲利普

回答

6

這樣做的最簡單的方法:添加帳戶-ui包:

meteor add accounts-ui accounts-twitter 

,並在您的模板做

{{loginButtons}} 

在第一次啓動的應用程序,點擊登錄按鈕將指導您完成設置過程。您將創建一個Twitter應用程序,並將消費者密鑰和消費者密鑰複製到流星呈現給您的表單中。之後,您可以使用Twitter登錄。

確保使用最新版本流星(0.5.2在這一刻)

+1

這個答案已經過時了,現在應該是'{{> loginButtons}}' – pahan

1

你也可以配置你的用戶密鑰和密碼的代碼,這是微博的一個例子,但它的Twitter,谷歌等工作...(服務器端):

// first, remove configuration entry in case service is already configured 
Accounts.loginServiceConfiguration.remove({ 
    service: "weibo" 
}); 
Accounts.loginServiceConfiguration.insert({ 
    service: "weibo", 
    clientId: "1292962797", 
    secret: "75a730b58f5691de5522789070c319bc" 
}); 
1

您需要添加什麼// @ Tom31在您的服務器端,即建議,我有一個/服務器/服務器。JS

Accounts.loginServiceConfiguration.remove({"service": "twitter"}); 
Accounts.loginServiceConfiguration.insert({ 
"service": "twitter", 
"consumerKey" : "<yours>", 
"secret" : "<yours>" 
}); 

最後,你的訪問令牌被存儲在用戶的數據庫,但這些信息也不會傳播到客戶端,如果你想訪問它,您新創建一個服務器端方法並通過Meteor.callMeteor.apply

更新訪問:我的服務器端方法的實例

我已經建立了我的服務器端的方法是這樣的:

Meteor.methods({ 
... 
    userGet: function(id) { 
    return removeSensibleFields(Meteor.users.findOne({ _id: id })); 
    } 
... 
}); 

其中removeSensibleFields是去除可能不會被髮送回客戶端

+0

你能提供所有不必要的/私人信息的方法服務器端方法的例子是什麼? – Rico

+0

更新了我的文章 – bitIO