2016-04-23 13 views
0

我剛剛設置了一個Cachet狀態頁面,但我很努力地通過它的API將更新推送到組件。將JSON數據操作到cachet.io

我期待從合作伙伴網站獲取現有的JSON訂閱源,並使用它來更新我自己的網頁上的狀態。

這裏是JSON數據的示例中,我需要拉:

{ 
    "state":"online", 
    "message":"", 
    "description":"", 
    "append":"false", 
    "status":true, 
    "time":"Sat 23 Apr 2016 10:51:23 AM UTC +0000" 
} 

及以下格式凱旋使用在它的API。

{ 
    "data": { 
     "id": 1, 
     "name": "Component Name", 
     "description": "Description", 
     "link": "", 
     "status": 1, 
     "order": 0, 
     "group_id": 0, 
     "created_at": "2015-08-01 12:00:00", 
     "updated_at": "2015-08-01 12:00:00", 
     "deleted_at": null, 
     "status_name": "Operational" 
    } 
} 

之前從來沒有處理JSON東西,但我想我需要,我可以運行每X分鐘搶原始數據並執行以下操作的腳本:

  • 從轉換的「狀態」原始飼料進入凱爾特人。
  • 更新腳本上次運行時的「updated_at」時間。

任何幫助或教程將非常感激。

謝謝!

回答

0

我是Cachet的首席開發人員,感謝您試用!您需要做的就是更新Component status。 Cachet將爲您處理updated_at時間戳。

我無法寫劇本給你,但你會做這樣的事情:

// This will be a lookup of the states from the service you're watching to Cachet. 
serviceStates = [ 
    'online' => 1, 
    'issues' => 2, 
    'offline' => 4, 
] 

// The id of the component we're updating 
componentId = 1 

// The state that is coming back from the service you're watching 
state = 'online' 

request({url: 'demo.cachethq.io/api/v1/components/'+componentId, data: { status: serviceStates[state] }}) 

的僞代碼,但你應該能夠從這項工作。

+0

嗨,詹姆斯,謝謝你,使用你的代碼我能夠從外部服務獲取數據,並將其轉換爲狀態標識的密碼。仍然無法弄清楚如何將其推入Cachet –

+0

您使用哪種語言?向Cachet端點發出'PUT'請求。 – James

+0

嗨,詹姆斯,我正在php –