亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

不允許回復使用moodle api發送的消息

不允許回復使用moodle api發送的消息

PHP
慕雪6442864 2023-06-24 18:00:54
我試圖制作一個 PHP 腳本來向 Moodle 中的其他人發送一條消息。我看過消息 api,我做了這個 $message = new \core\message\message();$message->component = 'moodle';$message->name = 'instantmessage';$message->userfrom = 318;$message->userto = 323;$message->subject = 'message subject 1';$message->fullmessage = 'message body';$message->fullmessageformat = FORMAT_MARKDOWN;$message->fullmessagehtml = '<p>message body</p>';$message->smallmessage = 'small message';$message->notification = '0';$message->contexturl = 'http://GalaxyFarFarAway.com';$message->contexturlname = 'Context name';$message->replyto = "[email protected]";$content = array('*' => array('header' => ' test ', 'footer' => ' test ')); // Extra content for specific processor$message->set_additional_content('email', $content);$message->courseid = 107; // This is required in recent versions, use it from 3.2 on https://tracker.moodle.org/browse/MDL-47162$messageid = message_send($message)問題是,當用戶 323 在 Moodle 內部消息中創建的聊天中發送回復消息時,會發生錯誤(消息被紅色包圍)并且永遠不會到達。我真的希望它能夠像正常對話一樣做出回應。我不知道我是否走錯了。
查看完整描述

2 回答

?
幕布斯7119047

TA貢獻1794條經驗 獲得超8個贊

我終于找到了?。?!


問題是首先您必須在用戶之間創建對話,然后發送消息


if(!\core_message\api::get_conversation_between_users([$userfrom, $userto ])){

    $conversation = \core_message\api::create_conversation(

                    \core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL,

                    [

                        $userfrom,

                        $userto 

                    ]

                );

}



$message = new \core\message\message();




$message->component = 'moodle';

    $message->name = 'instantmessage';

    $message->userfrom = $userfrom ;

    $message->userto = $userto;

    $message->subject = 'Nuevo mensaje';

    $message->fullmessage = $msg;

    $message->fullmessageformat = FORMAT_MARKDOWN;

    $message->fullmessagehtml = $msg;

    $message->smallmessage = $msg;

    $message->notification = '0';

    $message->contexturl = '';

    $message->contexturlname = 'Context name';

    $message->replyto = "###@######.###";

    $content = array('*' => array('header' => '', 'footer' => '')); 

    $message->set_additional_content('email', $content);

    $message->courseid = 107; 

    message_send($message);


查看完整回答
反對 回復 2023-06-24
?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

這可能是因為 userto 和 userfrom 需要是對象,例如:


$userto = $DB->get_record('user', array('id' => 323));


$message->userfrom = $USER; // Current user.

$message->userto = $userto;

查看完整回答
反對 回復 2023-06-24
  • 2 回答
  • 0 關注
  • 157 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號