curl -X POST \
-H "X-Parse-Application-Id: ${APPLICATION_ID}" \
-H "X-Parse-REST-API-Key: ${REST_API_KEY}" \
-H "Content-Type: application/json" \
-d '{"Participants":[${USER_OBJ_A}...],"CurrentPlayer": ${USER_ID_A},"NextDeadline":${TIMESTAMP},"GameData":${DATA_OBJ},"GameStatus":"Active"}' \
https://YOUR.PARSE-SERVER.HERE/parse/classes/TurnBasedGame
可在 Installation 與 User 中互相綁定資料,用來作 Target Segmentation
var query = new Parse.Query(Parse.Installation)
query.equalTo('user', {'__type': 'Pointer', 'className': 'User', 'objectId': ${USER ID}})
Parse.Push.send({
where: query,
data: {
alert: 'TURN'
}
}, { useMasterKey: true }).then(
function () {
response.success()
},
function (error) {
response.error(error)
}
)
curl -X GET \
-H "X-Parse-Application-Id: ${APPLICATION_ID}" \
-H "X-Parse-REST-API-Key: ${REST_API_KEY}" \
-G \
--data-urlencode 'where={"objectId": ${GAME ID}}' \
https://YOUR.PARSE-SERVER.HERE/parse/classes/TurnBasedGame
curl -X PUT \
-H "X-Parse-Application-Id: ${APPLICATION_ID}" \
-H "X-Parse-REST-API-Key: ${REST_API_KEY}" \
-H "Content-Type: application/json" \
-d '{"GameData":${GAME DATA},"CurrentPlayer": ${USER_ID_NEXT},"NextDeadline":${TIMESTAMP_NEXT}}' \
https://YOUR.PARSE-SERVER.HERE/parse/classes/TurnBasedGame/${GAME ID}
curl -X PUT \
-H "X-Parse-Application-Id: ${APPLICATION_ID}" \
-H "X-Parse-REST-API-Key: ${REST_API_KEY}" \
-H "Content-Type: application/json" \
-d '{"GameData":${GAME DATA},"GameStatus": "Finish"}' \
https://YOUR.PARSE-SERVER.HERE/parse/classes/TurnBasedGame/${GAME ID}
Parse.Cloud.afterSave("TurnBasedGame", function (request) {
if (request.object.get("GameStatus") === "Active"){
// 發送通知:換手
} else if (request.object.get("GameStatus") === "Finish"){
// 發送通知:完成遊戲
}
})