首页 > 解决方案 > 我无法使用 wp_remote_post 在 WordPress 上实现 Twilio 发送短信

问题描述

如何使用 wp_remote_post 从 Twilio 发送短信?下面的代码运行良好,但需要使用 WordPress HTTP API 使用 wp_remote_post 完成

function send_twilio_text_msg($id, $token, $from, $to, $body)
{

$url = "https://api.twilio.com/2010-04-01/Accounts/".$id."/SMS/Messages";
$data = array (
  'From' => $from,
  'To' => $to,
  'Body' => $body,
);
  $post = http_build_query($data);
  $x = curl_init($url );
  curl_setopt($x, CURLOPT_POST, true);
  curl_setopt($x, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($x, CURLOPT_SSL_VERIFYPEER, false);
  curl_setopt($x, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
  curl_setopt($x, CURLOPT_USERPWD, "$id:$token");
  curl_setopt($x, CURLOPT_POSTFIELDS, $post);
  $y = curl_exec($x);
  curl_close($x);
  print_r($y);
}

标签: wordpresstwilio

解决方案


要使用 Twilio API 调用wp_remote_post您需要做一些事情:

  1. 像您在示例中所做的那样创建 URL
  2. 收集您要发送的数据(您的FromToBody来自您的示例)
  3. Authorization从您的 Account Sid 和 Auth Token创建一个标头。为此,您需要一个带有一个键的数组,Authorization以及由 base 64 编码的 Account Sid 和 Auth Token 与冒号连接的值。
  4. $url是第一个参数,第二个参数是一个具有和属性wp_remote_post的关联数组 。bodyheaders

请参见下面的示例:

function send_twilio_text_msg($id, $token, $from, $to, $body)
{
  $url = "https://api.twilio.com/2010-04-01/Accounts/".$id."/SMS/Messages";
  $data = array(
    'From' => $from,
    'To' => $to,
    'Body' => $body
  );
  $headers = array(
    'Authorization' => 'Basic ' . base64_encode($id . ':' . $token)
  );
  $result = wp_remote_post($url, array(
    'body' => $data,
    'headers' => $headers
  ));
}

推荐阅读