#Facebook Instant Game# 什么时候会收到messaging_game_plays 消息?
Facebook Instant Game与微信小游戏最大的不同点之一,是Facebook推荐使用Bot来提升用户的留存。
Facebook的各种应用都可以使用Bot来进行自动化,通过监听不同的消息(Event),做相应的处理。
其中,messaging_game_plays 消息是Instant Game独有的。这个消息什么时候发出呢?
消息时机
官方解释
This callback occurs after a person played a round of Instant Games.
翻译:玩家每玩完一轮游戏时发出。
那么,a round (一轮)又具体是指什么呢?
官方另一处说法
https://developers.facebook.com/docs/games/instant-games/getting-started/bot-setup
Once your bot is correctly configured, your server application will start receiving messaging_game_plays web hooks every time a player closes the Instant Game.
这个比较清楚了,当玩家关闭游戏页面时,会发出这个消息。
实际测试的时候,也确实在关闭页面时收到了消息。
测试的消息示例:
{"object":"page",
"entry":[
{
"id":"1009260959273885",
"time":1544628852444,
"messaging":[
{
"recipient":{"id":"1009260959273885"},
"timestamp":1544628852444,
"sender":{"id":"1605880706178143"},
"game_play":
{
"game_id":"360189154536649",
"payload":"{\\"msg\\":\\"game start\\"}",
"player_id":"2087169211340109"
}
}
]
}
]
}
其中,payload是我在游戏中通过 FBInstant.setSessionData 设置的。
https://developers.facebook.com/docs/games/instant-games/sdk/fbinstant6.2
消息格式
其中值得注意的几个值
- context_type
本次游戏的场景,分为:
SOLO - 单人游戏
THREAD - ??
GROUP - 群组内游戏 - score
玩家在该游戏场景中的排行榜分数 - payload
可以通过FBInstant.setSessionData来传递的数据
其他
THREAD和GROUP环境下的游戏,还在摸索中,待续。
补充
找到了官方对于Context类型的描述:
The type of the current game context.
POST - A facebook post. (应该是对应到facebook 的文章吧)
THREAD - A messenger thread. (messenger的聊天窗)
GROUP - A facebook group. (Facebook的群)
SOLO - Default context, where the player is the only participant. (默认,只有当前玩家)
扫一扫关注微信公众号:耿直的IT男阿斌
聊一聊IT男眼中的世界