duanmao1975 2012-05-12 22:07
浏览 38
已采纳

Drupal 7无法识别自定义模块中的Twilio客户端

I have a Twilio account and I am writing a mass text message module for my Drupal site. At the beginning of the module I have set up the Twilio client with the following code:

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

The myModule_submit() queries the database for phone numbers and sends them out via the Twilio PHP libraries referenced above. I am using code found on the Twilio site for something similar here(http://www.twilio.com/docs/howto/sms-notifications-and-alerts). The problem is when I fill in the forms for the SMS message to be sent out and press submit I get the following error message:

Notice: Undefined variable: client in myModule_submit() (line 128 of /var/www/erosas/anysite.com/sites/all/modules/myModule/myModule.module). Notice: Trying to get property of non-object in myModule_submit() (line 128 of /var/www/erosas/anysite.com/sites/all/modules/myModule/myModule.module). Notice: Trying to get property of non-object in myModule_submit() (line 128 of /var/www/erosas/anysite.com/sites/all/modules/myModule/myModule.module).

The submit function is:

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
}

}

Any thoughts/help would be greatly appreciated, I tried searching this site and Google for an answer, but nothing specific to Drupal came up.

  • 写回答

1条回答 默认 最新

  • douzhouhan4618 2012-05-13 02:39
    关注

    $client object is n/a to the submit function. Try putting the same code

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

    in the beginning of the submit function.

       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
        }
    ...
    

    Better making some include function without arguments the simply includes the library files and sets the tokens/sid for ease of use.

    and btw, your site's domain is in the error message.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 爬取豆瓣电影相关处理
  • ¥15 手机淘宝抓清除消息接口
  • ¥15 C#无selenium
  • ¥15 LD衰减计算的结果过大
  • ¥15 用机器学习方法帮助保险公司预测哪些是欺诈行为
  • ¥15 计算300m以内的LD衰减
  • ¥15 数据爬取,python
  • ¥15 怎么看 cst中一个面的功率分布图,请说明详细步骤。类似下图
  • ¥15 为什么我的pycharm无法用pyqt6的QtWebEngine
  • ¥15 FOR循环语句显示查询超过300S错误怎么办