我正在制作Facebook即时游戏,并通过相关的机器人发送自己的测试消息。
有效。但并不总是,为什么?
我经常得到这个:
{
"error": {
"message": "(#100) Cannot send Instant Game message to user at this time.",
"type": "OAuthException",
"code": 100,
"error_subcode": 2018144,
"fbtrace_id": "DNZhKZlP83D"
}
}
此错误代码未在error code documentation。
中列出我想这可能是一些消息发送限制,但我认为作为应用程序的列出开发者,我将免于任何限制。
更多详情,以防它们相关
我订阅了webhooks,并创建了一个与我的即时游戏应用程序相关联的页面,并为其设置了访问令牌。我尝试发送消息的用户是我,列为开发人员。
当我收到game_play事件时,例如:
{
"object": "page",
"entry": [{
"id": "189899011738553",
"time": 1521899151513,
"messaging": [{
"recipient": {
"id": "189899011738553"
},
"timestamp": 1521899151513,
"sender": {
"id": "1647209385355472"
},
"game_play": {
"game_id": "176650212970169",
"player_id": "1293384810761815"
}
}]
}]
}
我找到了发件人ID,并发送了这样的回复:
{
"message": {
"attachment": {
"type": "template",
"payload": {
"template_type": "generic",
"elements": [{
"buttons": [{
"type": "game_play",
"title": "Play"
}],
"title": "Hello World"
}]
}
}
},
"recipient": {
"id": "1647209385355472"
}
}
以下是cURL版本:
curl -X POST \
'https://graph.facebook.com/me/messages?access_token=MY_ACCESS_TOKEN' \
-H 'Cache-Control: no-cache' \
-H 'Content-Type: application/json' \
-d '{"message": {"attachment": {"type": "template", "payload": {"template_type": "generic", "elements": [{"buttons": [{"type": "game_play", "title": "HELLO"}], "title": "HELLO WORLD"}]}}}, "recipient": {"id": "1647209385355472"}}'
并且只是为了显示访问令牌是有效的,尽管“OAuthException”,并且它确实有效地工作:
答案 0 :(得分:1)
我们已确保现在记录此错误。
此消息表示向即时游戏用户发送消息的消息数或时间窗口超出了即时游戏机器人策略。
这适用于开发人员和管理员以及应用的用户。玩游戏或与机器人通信应重置这些限制。