1

私は Twilio アカウントを持っており、Drupal サイト用に大量のテキスト メッセージ モジュールを作成しています。モジュールの冒頭で、次のコードを使用して Twilio クライアントをセットアップしました。

$path = drupal_get_path("library", "twilio");
require($path . "twilio/Services/Twilio.php");
$accountSID = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$authToken = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$client = new Services_Twilio($accountSID, $authToken);
$from = "xxxxxxxxxx";

myModule_submit() はデータベースに電話番号を照会し、上記の Twilio PHP ライブラリを介して送信します。Twilio サイト (http://www.twilio.com/docs/howto/sms-notifications-and-alerts) で同様のコードを使用しています。問題は、送信する SMS メッセージのフォームに入力して [送信] を押すと、次のエラー メッセージが表示されることです。

注意: 未定義の変数: myModule_submit() の client (/var/www/erosas/anysite.com/sites/all/modules/myModule/myModule.module の 128 行目)。注意: myModule_submit() で非オブジェクトのプロパティを取得しようとしています (/var/www/erosas/anysite.com/sites/all/modules/myModule/myModule.module の 128 行目)。注意: myModule_submit() で非オブジェクトのプロパティを取得しようとしています (/var/www/erosas/anysite.com/sites/all/modules/myModule/myModule.module の 128 行目)。

送信機能は次のとおりです。

function myModule_submit($form, &$form_state){

// Retrieve the values from the fields of the custom form
$values = $form_state['values'];


// Use Database API to retrieve current posts.
$query = db_select('field_data_field_phone_number', 'n');
$query->fields('n', array('field_phone_number_value'));

// Place queried data into an array
$phone_numbers = $query->execute();

$body = $values['sms_message'];

// Iterate over array and send SMS 
foreach($phone_numbers as $number){
    $client->account->sms_messages->create($from, $number, $body); // This is line 128
}

}

このサイトと Google で回答を検索してみましたが、Drupal に固有のものは何も見つかりませんでした。

4

1 に答える 1

2

$clientオブジェクトはsubmit関数に対してn/aです。同じコードを入れてみてください

$path = drupal_get_path("library", "twilio");
require($path . "twilio/Services/Twilio.php");
$accountSID = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$authToken = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$client = new Services_Twilio($accountSID, $authToken);
$from = "xxxxxxxxxx";

送信機能の最初に。

   function pulsesurf_submit($form, &$form_state){
     $path = drupal_get_path("library", "twilio");
     require($path . "twilio/Services/Twilio.php");
     $accountSID = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx";
     $authToken = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx";
     $client = new Services_Twilio($accountSID, $authToken);
     $from = "xxxxxxxxxx";

    // Retrieve the values from the fields of the custom form
    $values = $form_state['values'];


    // Use Database API to retrieve current posts.
    $query = db_select('field_data_field_phone_number', 'n');
    $query->fields('n', array('field_phone_number_value'));

    // Place queried data into an array
    $phone_numbers = $query->execute();

    $body = $values['sms_message'];

    // Iterate over array and send SMS 
    foreach($phone_numbers as $number){
        $client->account->sms_messages->create($from, $number, $body); // This is line 128
    }
...

引数なしでいくつかのinclude関数を作成する方が、ライブラリファイルをインクルードし、使いやすさのためにtokens/sidを設定するだけです。

ところで、あなたのサイトのドメインはエラーメッセージにあります。

于 2012-05-13T02:39:58.973 に答える