UPDATE 2016年2月19日 - 見下如何通過Swagger或Ajax將數據發送到Presence Insights連接器API?
我建立了線下營銷的混合移動應用程序(即一個移動應用程序將與信標互動),我想用Bluemix存在洞察服務收集數據。問題是我無法通過SDK連接,因爲它是一個混合應用程序,因此我需要使用connectors API。我做了一些嘗試,我仍然得到401響應。
我已經試過了Ajax call setting the Basic Autentication Headers:
beforeSend: function (xhr) {
xhr.setRequestHeader ("Authorization", "Basic " + btoa(username + ":" + password));
},
或
beforeSend: function (xhr) {
xhr.setRequestHeader ("Authorization", "Basic <my encrypted token>");
},
或
headers: {
"Authorization": "Basic " + btoa(USERNAME + ":" + PASSWORD)
},
(也與加密令牌,我不是重寫它)。
然後我做了一個Node.js的服務器和安裝招搖的客戶端(即我已經改變了策略):
router.post('/', function (req, res, next) {
var json = req.body.json;
var client = new Swagger({
url: 'https://presenceinsights.ibmcloud.com/pi-swagger/the-connector-api',
success: function() {
console.log("success");
console.log(JSON.stringify(client));
},
authorizations : {
easyapi_basic: new Swagger.PasswordAuthorization('username', 'password')
}
});
res.end();
});
這一次,我已經取得了進展:
我可以成功連接,但我無法發送與數據的JSON。如果沒有訪問swagger.json
,我該如何聲明發布請求的正文?有什麼方法可以訪問swagger.json
的存在洞察力(這件事會解決我所有的問題)?
UPDATE 的信息與見解存在支持交流以後,我可以說,這是不可行的調用揚鞭客戶端。通過混合應用程序使用服務的唯一方法是構建代理Blumix運行時,它將數據從混合應用程序轉發到Presence Insights服務。不允許使用外部服務器或通過在應用程序內調用API進行任何其他嘗試,因爲CORS策略不允許使用它。 這對於連接器和管理是正確的。
我正在寫這個供將來參考。
謝謝。我打開一張票來揭示這些問題。 – OneZeroOne