为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 PHP 和 CURL 从 API 端点发布到多个 ID?

如何使用 PHP 和 CURL 从 API 端点发布到多个 ID?

PHP
慕丝7291255 2022-07-02 16:56:29
我正在尝试使用 PHP 通过 Canvas API 发布消息。我相信这比 Canvas 更像是一个 PHP 问题。当我为“recipients[]”包含单个用户 ID(“79”是一个特定的用户想法并且 API 向他们发送一条消息 - 如电子邮件)时,以下代码有效。有关 API 文档和尝试发布到多个 ID 的问题,请参见下文。$post = [  'recipients[]' => 79,  'group_conversation' => true,  'bulk_message' => true,  'subject'=>$msg_subject,  'body'=>$msg_body,];$curl = curl_init();curl_setopt_array($curl, array(  CURLOPT_URL => $token_url,  CURLOPT_HTTPHEADER => $header,  CURLOPT_SSL_VERIFYPEER => false,  CURLOPT_CUSTOMREQUEST => "POST",  CURLOPT_POSTFIELDS => $post,  CURLOPT_RETURNTRANSFER => true));$lti_msgresponse = curl_exec($curl);curl_close($curl);echo($lti_msgresponse);这是 Canvas 文档: https ://edu.pretpriemacedu.mk/doc/api/conversations.html#method.conversations.create具体来说:收件人[] 必需的字符串收件人 ID 的数组。这些可能是分别以“course_”或“group_”为前缀的用户 ID 或课程/组 ID,例如收件人[]=1&recipients=2&recipients[]=course_3API 要求为这个“数组”发送一个字符串(最后的括号?)。您不能传递多个“收件人”字段,因为只有最后一个会记录(duh)。我认为解决方案可能与使用 http_build_query (请参阅https://www.php.net/http_build_query)发送复杂/嵌套数组有关,但我尝试了各种方法将更多内容打包到“recipients []”中,他们都失败了。任何 PHP 或一般 API 智慧都值得赞赏......
查看完整描述

1 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

帖子参数(特别是“收件人”)应如下所示


$post = [

    'recipients'         => '59,48,19,55',

    'group_conversation' => true,

    'bulk_message'       => true,

    'subject'            => $msg_subject,

    'body'               => $msg_body,

];

或者,也许是以下内容:'recipients' => [59,48,19,55]. 但是recipients[]要传递一个奇怪的参数,因为它包含特殊字符。


查看完整回答
反对 回复 2022-07-02
  • 1 回答
  • 0 关注
  • 130 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号