0

我已經從Bluemix下載了Personality Insights,並且可以在我的命令行上成功運行它,但是如何將它插入到我的網頁並在本地運行?從localhost調用Watson Personality Insights

有沒有人有index.js的示例代碼?我已經建立了服務器,但我發現很難將其集成到我的頁面上。

var express = require('express'); 
var app = express(); 
var http = require('http').Server(app); 
var cfenv = require("cfenv"); 

var appEnv = cfenv.getAppEnv(); 

http.listen(appEnv.port, appEnv.bind); 

var PersonalityInsightsV2 = require('watson-developer-cloud/personality-insights/v2'); 

var personality_insights = new PersonalityInsightsV2({ 
    username: '<YOUR-USERNAME>', 
    password: '<YOUR-PASSWORD>' 
}); 

personality_insights.profile({ 
    text: "<YOUR-100-UNIQUE-WORDS>", 
    language: 'en' }, 
    function (err, response) { 
    if (err) 
     console.log('error:', err); 
    else 
     console.log(JSON.stringify(response, null, 2)); 
});  
+1

你可以添加你在做什麼看到這裏錯了嗎?我需要更多的輸出,如控制檯錯誤等 – broguinn

+0

沒有什麼wrog它在我的命令行工作,並希望在我的locahost網站上使用它。我想整合在我的網頁上。我正在尋找一個例子,或者如果某人可以爲我提供步驟,這將是偉大的 – user3026665

回答

0

這不建議,因爲在理論上,你可以直接從製作網頁(瀏覽器端Java腳本)的沃森個性見解REST服務呼叫,但隨後你放棄的憑據。

因此推薦的方法是使用中間http代理/網關樣式組件(也可以在Node.js中實現)。

因此,基本上基於瀏覽器的java腳本將在IBM Bluemix上調用您自己的REST服務(例如Node.js應用程序,但也可以使用OpenWhisk,NodeRED,JAVA等),並且調用Watson Service從那裏開始,所以你的憑證是保存的(無論是硬編碼還是使用VCAP_SERVICES)

編輯:7.9.16: 如果你真的想在本地執行,只需使用本地node.js實例來完成您可以通過登錄到Bluemix Web界面來獲取Watson服務的服務憑證。它被描述here

的UI略有改變,所以你必須點擊左上角的按鈕,選擇沃森 - >個性Insights->服務Credentials->查看證書(全權證書,1項)

+0

這只是我的主人theisis.I不會在一個活的網站上使用它,但因爲我是一個begginer我不知道這個步驟或至少一個例子如何做到這一點。我想在我的頁面上添加一個按鈕,onclick顯示服務的輸出 – user3026665

+0

好吧,做了更新.. –

+0

O @Romeo如果它是關於bluemix我已經完成了它。我的問題不是憑證。我只是想要一個已經完成它的人的例子,我已經告訴過你,我在我的commad上運行它是可以的,但是如何將它導入到我的本地主機,基本上只是將index.js包含到我的其他文件中?我給了我一個錯誤的要求沒有定義 – user3026665

0

以下是我用於從本地計算機查詢API進行測試的代碼。

var watson = require('watson-developer-cloud'); 
var personality_insights = watson.personality_insights({ 
    username: '<username>', 
    password: '<password>', 
    version: 'v2' 
}); 

var express = require('express'); 
var app = express(); 


var http = require('http').Server(app); 

var server_port = 8080 
var server_ip_address = '127.0.0.1' 

var bodyParser = require('body-parser') 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ 
    extended: true 
})); 

app.use('/', express.static(__dirname + '/public')); 

app.get("/", function(req, res){ 
    res.sendFile(__dirname + '/public/index.html'); 
}); 

app.post("/post", function(req, res){ 
    getInsights(req.body.text,res); 
}); 

function getInsights(text,res) { 
    var params = {}; 
    params.text = text; 
    personality_insights.profile(params, function(error, response) { 
     if (error) 
     console.log('error:', error); 
     else { 
     res.send(JSON.stringify(response)); 
     } 
    }); 
} 

http.listen(server_port,server_ip_address, function(){ 
    console.log("Listening on " + server_ip_address + ", server_port " + server_port) 
}); 

我在公用文件夾一個簡單的index.html對我來說,在文本輸入和發送過來的NodeJS

<!doctype html> 
<html> 
    <head> 
    <title>Status</title> 
    <style> 

    </style> 
    </head> 
    <body> 
    <div style="margin:10px"><textarea style="width:100%;height:500px;" id="text"></textarea></div> 
    <div>Words: <span id="count">0</span> <button onClick="onSubmit()">Submit</button></div> 
    <br/><br/> 
    <div id="response"> 

    </div> 
    </body> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> 
<script src="Countable.js"></script> 
<script> 

    var word_counter = 0; 

    var area = document.getElementById('text') 

    Countable.live(area, function (counter) { 
    $("#count").html(counter.words); 
    //console.log(counter); 
    word_counter = counter.words; 
    }); 

    function onSubmit() { 
    if (word_counter < 100) { 
     $("#response").html("Please provide at least 100 words"); 
     return; 
    } 
    var text = $("#text").val(); 
    $.ajax({ 
     type: "POST", 
     url: '/post', 
     data: {text:text.trim()}, 
     dataType: "json", 
     success: function(data) { 
     $("#response").html(data); 
     } 
    }) 
    } 
</script> 

</html> 

希望幫助

+0

如何運行它?我點擊npm install app它會顯示很多錯誤 – user3026665

相關問題