簡體   English   中英

如何使用Meteor.js,Twitter和Oauth發布推文

[英]How to post a tweet with Meteor.js, Twitter and Oauth

我對Meteor和Twitter有點問題。 我想做的就是通過點擊按鈕發布推文。 為此,我必須通過Oauth對Twitterservice進行身份驗證。

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

可悲的是,我找不到任何文檔或示例,只需登錄並獲得最終的oauth_token。 所以我從Meteor得到的所有東西然后我嘗試以下代碼,這是錯誤消息:

Erromessage:Accounts.ConfigError {message:“Service not configured”}

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

我知道我必須在某個地方輸入我的Appinformation,比如Consumer鍵,但我不知道在哪里。 有人可以幫助我,並為我知道一些例子嗎? 或者知道我是否走在正確的軌道上?

謝謝和問候菲利普

最簡單的方法:添加accounts-ui包:

meteor add accounts-ui accounts-twitter

並在你的模板中做

{{loginButtons}}

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

確保使用最新的Meteor版本(此刻為0.5.2)

您還可以使用代碼配置您的消費者密鑰和密碼,這是微博的一個例子,但它適用於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"
});

您需要在服務器端添加@ Tom31建議的內容,即我有一個/server/server.js

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

最后,您的訪問令牌存儲在您的用戶數據庫中,但是此信息不會傳播到客戶端,如果您想要訪問它,您可以創建服務器端方法並通過Meteor.call訪問它或者Meteor.apply

更新:我的服務器端方法示例

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

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

其中removeSensibleFields是一種刪除可能無法發送回客戶端的所有不必要/私有信息的方法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM