为什么有些消息不是由Facebook聊天API发送的?

时间:2014-02-13 23:43:36

标签: facebook-fql facebook-chat

我们已经在我们的应用程序上运行了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之前发送的所有消息都会显示...

0 个答案:

没有答案