簡體   English   中英

如何使用 PHP 和 CURL 從 API 端點 POST 到多個 ID?

[英]How can I POST to multiple IDs from an API endpoint using PHP and CURL?

我正在嘗試使用 PHP 通過 Canvas API 發布消息。

我相信這比 Canvas 更像是一個 PHP 問題。

當我為“收件人[]”(“79”是一個特定的用戶想法,API 向他們發送一條消息 - 就像一封電子郵件)包含一個用戶 ID 時,以下代碼有效。

有關 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);

這是畫布文檔: https : //edu.pretpriemacedu.mk/doc/api/conversations.html#method.conversations.create

具體來說:

收件人[] 必填
細繩
一組收件人 ID。 這些可能是分別以“course_”或“group_”為前綴的用戶ID或課程/組ID,例如recipients[]=1&recipients=2&recipients[]=course_3

API 調用要為此“數組”發送的字符串(末尾的括號?)。 您不能傳遞多個“收件人”字段,因為只有最后一個會記錄(廢話)。

我認為一個解決方案可能與使用 http_build_query (見https://www.php.net/http_build_query )發送復雜/嵌套數組有關,但我嘗試了各種方法將更多內容打包到“收件人[]”中,他們都失敗了。

任何 PHP 或通用 API 智慧都值得贊賞......

帖子參數(特別是“收件人”)應如下所示

$post = [
    'recipients'         => '59,48,19,55',
    'group_conversation' => true,
    'bulk_message'       => true,
    'subject'            => $msg_subject,
    'body'               => $msg_body,
];

或者,也許是以下內容: 'recipients' => [59,48,19,55] 但是recipients[]將是一個奇怪的參數,因為它包含特殊字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM