Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Meteor帐户从Twitter帐户添加信息_Twitter_Meteor_Meteorite - Fatal编程技术网

Meteor帐户从Twitter帐户添加信息

Meteor帐户从Twitter帐户添加信息,twitter,meteor,meteorite,Twitter,Meteor,Meteorite,我正试图弄清楚如何在Meteor安装中将用户Twitter帐户中的附加信息添加到创建的帐户中 特别是,我试图通过Twitter Api v1.1访问用户的个人简历,但没有成功 因此,我试图扩展Accounts.onCreateUser(函数(选项,用户){})与Twitter bio。我该怎么做?然后从模板访问此数据 这里有一个从Github返回数据的完美答案,但是我在将这种方法作为身份验证服务移植到Twitter上时遇到了麻烦:您可以这样做: Accounts.onCreateUser(fun

我正试图弄清楚如何在Meteor安装中将用户Twitter帐户中的附加信息添加到创建的帐户中

特别是,我试图通过Twitter Api v1.1访问用户的个人简历,但没有成功

因此,我试图扩展Accounts.onCreateUser(函数(选项,用户){})与Twitter bio。我该怎么做?然后从模板访问此数据


这里有一个从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(我想不需要保存到数据库)。我需要采取什么步骤?我同意流星文档中的提示来解决这个问题。不管怎样,这帮了大忙,谢谢。