Meteor帐户从Twitter帐户添加信息
我正试图弄清楚如何在Meteor安装中将用户Twitter帐户中的附加信息添加到创建的帐户中 特别是,我试图通过Twitter Api v1.1访问用户的个人简历,但没有成功 因此,我试图扩展Accounts.onCreateUser(函数(选项,用户){})代码>与Twitter bio。我该怎么做?然后从模板访问此数据Meteor帐户从Twitter帐户添加信息,twitter,meteor,meteorite,Twitter,Meteor,Meteorite,我正试图弄清楚如何在Meteor安装中将用户Twitter帐户中的附加信息添加到创建的帐户中 特别是,我试图通过Twitter Api v1.1访问用户的个人简历,但没有成功 因此,我试图扩展Accounts.onCreateUser(函数(选项,用户){})与Twitter bio。我该怎么做?然后从模板访问此数据 这里有一个从Github返回数据的完美答案,但是我在将这种方法作为身份验证服务移植到Twitter上时遇到了麻烦:您可以这样做: Accounts.onCreateUser(fun
这里有一个从Github返回数据的完美答案,但是我在将这种方法作为身份验证服务移植到Twitter上时遇到了麻烦:您可以这样做:
Accounts.onCreateUser(function (options, user){
user.profile = options.profile || {};
//Twitter returns some useful info as the username and the picture
if(user.services.twitter){
user.profile.picture= user.services.twitter.profile_image_url_https;
user.profile.username= user.services.twitter.screenName;
}
return user;
});
为了从Twitter API获取数据,我使用节点包oauth:
OAuth = Npm.require('oauth');
oauth = new OAuth.OAuth(
'https://api.twitter.com/oauth/request_token',
'https://api.twitter.com/oauth/access_token',
'consumerKey',
'secretKey',
'1.0A',
null,
'HMAC-SHA1'
);
getTwitterUserData: function (id) {
var accountUser = AccountsUserCollection.findOne({_id: id});
var url = "https://api.twitter.com/1.1/users/show.json?screen_name="+accountUser.screen_name;
oauth.get(url, 'accessToken', 'accessSecret', function (err, data, response) {
if(err){
console.log(err);
}
if(data){
Fiber(function () {
AccountsUserCollection.update({_id: accountUser._id}, {$set: {dataTwitter: JSON.parse(data)}});
}).run();
}
if(response){
Log.info(response);
}
});
}
我知道onCreateUser是正确的方法。Meteor提供了屏幕名称和配置文件图像,但其余部分需要通过API调用。我只是不明白到目前为止我是怎么做到的@lfergon。哦,对不起,我误解了你。你可以调用Twitter API,因为你的用户帐户上有accessToken,我会更新我的答案。哇,谢谢@lfergon。我是一个完全的初学者,所以我试着去理解它。与onCreateUser方法不同,这个方法不会将其保存到数据库中,而是从API调用它,对吗?比如说,我如何在模板中调用bio?我知道这些都是非常基本的…你可以调用getWitterUserData(id)方法,一次获取与用户相关的数据,保存到数据库,这样你就可以随时获得可用的信息。看起来很棒。假设我只想从模板访问用户bio(我想不需要保存到数据库)。我需要采取什么步骤?我同意流星文档中的提示来解决这个问题。不管怎样,这帮了大忙,谢谢。