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



我对流星和Twitter有一个小问题。我要做的就是通过单击按钮发布推文。为此,我必须通过Oauth对Twitterservice进行身份验证。

目前,我正在以一种非常复杂的方式进行身份验证,从客户到服务器和返回。但是现在我找到了函数Meteor.loginwithtwitter。最初,我认为此功能仅用于将您与Twitterkeys一起记录到自己的应用程序中,现在我不太确定了。可能我也可以将其用于我的问题。因为看来OAuth-Process是在流星中实现的(并且以一种简单的方式)。

可悲的是,我找不到任何文档或示例来登录并获得最终的OAuth_Token。因此,我从流星那里得到的一切,然后我尝试以下代码,是此错误:

ermomessage:accounts.configerror {消息:"不配置服务"}

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

我知道我必须像消费者钥匙一样进入我的信息,但我不知道在哪里。有人可以帮我,为我知道一些例子吗?还是知道我是否在正确的轨道上?

谢谢和问候菲利普

最简单的方法:添加Account-UI软件包:

meteor add accounts-ui accounts-twitter

在您的模板中做

{{loginButtons}}

在应用程序的第一个开始时,单击登录按钮将指导您完成设置过程。您将创建一个Twitter应用程序,并将消费者密钥和消费者的秘密复制为流星为您提供的形式。之后,您可以使用Twitter登录。

确保使用最新的流星版(目前0.5.2)

您还可以使用代码配置您的消费者密钥和秘密,这是微博的一个示例,但是它的Twitter,Google等的工作是(服务器端):

// 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建议的,即,我有a/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 }) );
  }
...
});

其中删除是一种删除所有不必要/私人信息的方法,这些信息可能不会发送回客户端

最新更新