1

我正在使用 Plivo PHP 库通过 plivo 发送短信。

我在库中设置了正确的身份验证凭据,它是根据 curl_request 方法中的库进行 base64 编码的。

我认为标题是正确的,并且我与平台的集成工作正常,但是当尝试使用 send_message 方法发送简单消息时,我无法让它工作并且总是得到响应状态 401,根据文档,这是一个身份验证错误.

我究竟做错了什么 ?

非常感谢

我的代码:

//Load library messages
                $this->load->library( 'Plivo' );
                $p = new RestAPI( 'MANXXXXXXXXXXXXXZIWOD', 'MmXXXXXXXXXXXXXXXXXXXXXXXXXXXX' );

                // //for each phone Numbers generate password associated to event
                foreach ( $nums as $key => $num ) {
                    //For each combo send Message
                    $params = array(
                            'src' => '13307782635', // Sender's phone number with country code (US)
                            'dst' => '447598XXXXXX', // Receiver's phone number with country code (UK)
                            'text' => 'Hi, Message from your fired', // Your SMS text message
                            'url' => site_url( 'eventPromotion/report' ), // The URL to which with the status of the message is sent
                            'method' => 'POST' // The method used to call the url
                        );
                    // Send message
                    $response = $p->send_message($params);

                    // Print the response
                    echo "Response : ";
                    var_dump( $response );
4

2 回答 2

9

代替库使用可以使用api。

<?php
    # Plivo AUTH ID
    $AUTH_ID = 'AUTH_ID-GOES-HERE';
    # Plivo AUTH TOKEN
    $AUTH_TOKEN = 'AUTH-TOKEN-GOES-HERE';
    # SMS sender ID.
    $src = 'SM123';
    # SMS destination number
    $dst = 'MOBILE-NUMBER';
    # SMS text
    $text = 'Hello';
    $url = 'https://api.plivo.com/v1/Account/'.$AUTH_ID.'/Message/';
    $data = array("src" => "$src", "dst" => "$dst", "text" => "$text");
    $data_string = json_encode($data);
    $ch=curl_init($url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
    curl_setopt($ch, CURLOPT_USERPWD, $AUTH_ID . ":" . $AUTH_TOKEN);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
    $response = curl_exec( $ch );
    curl_close($ch);
    print_r($response);
?>

更改代码中的以下参数

AUTH_ID-GOES-HERE
AUTH-TOKEN-GOES-HERE
MOBILE-NUMBER

Note: Please make sure upload this code to live server in localhost it is not working
于 2015-12-24T12:25:31.283 回答
0

对于使用 curl 在 Plivo 中发送短信,您将从 plivo api 获得返回正确的 JSON

$auth_id = 'auth_id';
$auth_token = 'auth_token';
$src = '+1XXXXXXXXXXX';
$dst = '+1XXXXXXXXXXX';

$text = 'Hello, this is testing message';

    $api = curl_init("https://api.plivo.com/v1/Account/$auth_id/Message/");
    curl_setopt_array($api, array(
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_POST => 1,
        CURLOPT_HTTPHEADER => array("Authorization: Basic ".base64_encode($auth_id.':'.$auth_token)),
        CURLOPT_POSTFIELDS => array(
            'src' =>$src,
            'dst' => $dst,
            'text' => $text
        )
    ));

    $resp = curl_exec($api);

    $resp = curl_exec($api);
    curl_close($api);

    var_dump($resp);
于 2020-02-19T20:13:30.017 回答