2016-07-19 8 views
0

イムに変数を渡します。私は、ユーザーのニックネーム(蒸気API)でログインして表示するようには、どのように私は、外部APIを使用してサーバ側からクライアント側のjs流星

サーバmain.js

Meteor.startup(function() { 
    ServiceConfiguration.configurations.upsert(
     { service: 'steam' }, 
     { 
     $set: { 
      loginStyle: 'redirect', 
      timeout: 10000 // 10 seconds 
     } 
     } 
    ); 

    Accounts.onLogin(function() { 
     var steam64Id = Meteor.user().profile.id; 
     console.log(steam64Id + " is logged in."); 

     // To retrieve more details about user 

     var steamApiKey = ("XXXXXXXXXXXXX"); 
      var result = Meteor.http.get('http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=xxxxxxxxx&steamids=76561197977045111'); 
       console.log(result.data.response.players[0].personaname); 
    }); 
    }); 

これは、コンソールログに「私のニックネーム」を返しますが、私は、この変数を取得したいのですが欲しいですクライアント側は、私は、テンプレート最も明白な方法は、自分のユーザレコードに、ユーザーのプロファイルにその結果を追加することです

答えて

0

にクライアントjsのテンプレートとショーのユーザーのニックネームに{{ニックネーム}}追加することができます。その後、自動的にクライアントに同期され、そこでの使用が可能になります。

クライアント側で
var steamApiKey = ("XXXXXXXXXXXXX"); 
var result = Meteor.http.get('http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=xxxxxxxxx&steamids=76561197977045111'); 
Meteor.users.update(Meteor.userId(), 
    { $set: { 'profile.personaname': result.data.response.players[0].personaname }} 
); 

、この値を取得するには、自分自身のヘルパー(グローバル一つまたはあなたがそれを必要とするテンプレート(複数可)に特定のもののいずれか)を作る:

Nickname(){ 
    return Meteor.user().profile.personaname; 
} 

。なお、ユーザーの下にあるプロファイルオブジェクトは自動的にクライアントに公開されるため、特別な発行をする必要はありません。

+0

おかげでミシェルは、本当に感謝しています。 Im wonderinは、別のユーザーがログインしても出力が変わらないでしょうか?独自のuserIdを更新していますか?ユーザーIDはどのような状況で変更されますが、それは同じユーザーですか?私は/新しいユーザーの前にログインしているユーザーのためにdbを作成したいので – Farhan

+0

別のユーザーの蒸気APIから別のpersonanameを取得しているところがわかりません。ユーザーのプロフィールの一部がhttp getの一部であるべきではありませんか? 'profile.personaname'が' $ isSet'で設定されているか持っていない人に問い合わせるのは簡単です –

+0

あなたはそうですが、それは違うのですが、私はこの部分について疑問に思っています。Meteor.users.update(Meteor.userId ()、もし私が2つの異なるマシン/ ISPからサイトにログインすると、Meteor.userId()は両方とも異なっていても同じでしょうか?私はちょっと心配しています。サイト、恐れその後、再び、私は設定できAN steam64idがすでに存在する場合、私はちょうどそこにそれを更新することができます。dupesがあるかもしれません。Accounts.onLogin機能してok – Farhan

関連する問題