2016-03-01 49 views
0
//Express 
var express = require('express'); 
var server = express(); 

//Steam 
var SteamWebAPI = require('steamwebapi').SteamWebAPI; 
SteamWebAPI.setAPIKey('XXXXXXXXXXXXXXXXXXXXXXXXXXXX'); 

//Steam - Recently Played Games 
server.get('/games', function (req, res) { 
    SteamWebAPI.getRecentlyPlayedGames('76561198190043289', 5, function(response) { 
     res.json(response.response.games); 
    }); 
}); 

//Localhost 
server.listen(3000, function() { 
    console.log('Server: '); 
}); 

顯示的console.log結果這是我的輸出:如何從API請求

[{"appid":730,"name":"Counter-Strike: Global Offensive","playtime_2weeks":620,"playtime_forever":4016,"img_icon_url":"69f7ebe2735c366c65c0b33dae00e12dc40edbe4","img_logo_url":"d0595ff02f5c79fd19b06f4d6165c3fda2372820"}] 

好吧,如果你去的網站:https://steamid.io/,你輸入你的名字,按下按鈕「查找」,並你得到你的ID。我如何做到這一點?是否有可能讓該用戶輸入他的姓名/身份證,並獲得信息。這樣我只有一個人可以進入用戶,他可以根據他的要求獲取文本和圖像。

像,我最近學到了很多關於Steam Web Api的知識,但是我仍然沒有想出如何顯示數據。一些很酷的人幫助了我,但是我們使用了Angular,但我仍然不熟悉它,現在我打算學習Ember.js,但是他們有什麼其他選擇嗎?

回答

0

如果你想做你的榜樣,看起來你錯過了前面的部分,還有一些後端。

第一個您必須創建一個表單。在你的情況下,只需要一個輸入來詢問用戶ID和一個提交按鈕就足夠了。然後你創建的形式在HTML文件中,與渲染功能渲染它給快報框架(http://expressjs.com/en/4x/api.html#app.render

和HTML表單(http://www.w3schools.com/html/html_forms.asp

在光提醒,但你必須渲染它,到特定的URL,例如

// Render your basic form 
    // The form is in the form.html file 
    // By default, views have to be placed into the view or views folder, I don't know exactly no more 
    server.get('/ask_user_id', function (req, res) { 
     app.render('form', function(err, html){ 
      if(err) return res.send(err); 
      else return res.send(html)    
     }); 
    }); 

所以,如果你去上你的localhost:3000/ask_user_id形式將呈現

當用戶把它的ID寫入你的輸入並提交表單,你必須檢索這些信息,然後調用你的API。因此,如果您的表單的操作是POST,並且要提交的網址是/user_infos,並且用戶標識名稱的輸入是userId,則此處爲代碼。

// Render your basic form 
    // The form is in the form.html file 
    // By default, views have to be placed into the view or views folder, I don't know exactly no more 
    server.get('/ask_user_id', function (req, res) { 
     app.render('form', function(err, html){ 
      if(err) return res.send(err); 
      else return res.send(html)    
     }); 
    }); 

    // You have to have a route that handle your form submission 
    server.post('/user_infos', function (req, res) { 

     // All your form submitted is in your req.body 
     // So retrieve the userID 
     var _userID = req.body.userId; 

     // Then sent the variable to the SteamAPI 
     SteamWebAPI.getRecentlyPlayedGames(_userID, 5, function(response) { 
      return res.json(response.response.games); 
     }); 

    }); 

希望它可以幫助

+0

非常好解釋!我得到這些東西......我會試試這個,我會告訴你它是否有效......如果我編輯評論,你會收到通知嗎? – Benjamin

+0

我不知道編輯,但如果你添加一些,是的:)。祝你好運 :) – Chilipote

0

在控制器/工廠,確保你有一個回調函數來得到服務器的響應。

$scope.postData = function(){ 
    $http.post('/', {data: someData}) 
    .then(function(response){ 
     console.log(JSON.stringify(response.data)); 
});