我们已经在我们的应用程序上运行了Facebook Chat API数月,但是最近我们开始收到5条消息中的1条似乎不再发送。
发送时我们使用:
sender_chat_id = "-#{uid}@chat.facebook.com"
client = Jabber::Client.new(Jabber::JID.new(sender_chat_id))
client.connect
client.auth_sasl(Jabber::SASL::XFacebookPlatform.new(client,
app_id,
access_token,
app_secret]
), nil)
# Send messages
client.send(jabber_message)
# Close chat client
client.close
它似乎有效。然后我们检查邮件是否发送:
Fql.execute({
"query1" => "SELECT body FROM message WHERE thread_id IN (SELECT thread_id, recipients FROM thread WHERE folder_id = 1 AND #{receiver_uid} IN recipients ORDER BY updated_time DESC) ORDER BY created_time DESC"
}, {
access_token: access_token
})
不幸的是,有时候这封邮件不会出现在发件箱中。
编辑:
问题似乎来自发送给没有发送者包含先前消息的线程的人的消息。 在这些情况下,Facebook聊天API发送的消息不会被传递。 但是,如果发件人“手动”向接收者发送消息(反之亦然),则会打开该线程并且API之前发送的所有消息都会显示...