2012-05-12 2 views
1

Twilio 계정이 있고 Drupal 사이트 용 대량 텍스트 메시지 모듈을 쓰고 있습니다.()Drupal 7 사용자 지정 모듈에서 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 클라이언트를 설정했습니다. Twilio 사이트에서 비슷한 코드를 사용하고 있습니다 (http://www.twilio.com/docs/howto/sms-notifications-and-alerts). 문제는 SMS 메시지를 보낼 양식을 채우고 submit을 눌러 다음과 같은 오류 메시지가 나타나는 경우입니다.

알림 : myModule_submit()의 클라이언트 (/ var/www의 128 행) /erosas/anysite.com/sites/all/modules/myModule/myModule.module). 알림 : 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 
} 

}

, 나는 대답을이 사이트와 구글을 검색했지만, 드루팔 특정 아무것도 올라 오지 않았다.

답변

2

$ 클라이언트 오브젝트는 제출 기능에 해당하지 않습니다. 제출 함수의 시작에 동일한 코드

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

일부는 단순히 라이브러리 파일을 포함하고 사용의 용이성에 대한 토큰/SID를 설정 인수없이 함수를 포함하고 더 나은.

및 btw, 사이트의 도메인에 오류 메시지가 있습니다.

+0

감사합니다. 더 이상 오류 메시지를받지는 않지만 보내지는 메시지를 확인하지 않고 사용자 계정 페이지로 리디렉션합니다. drupal_set_message()를 사용하려고 시도했지만 작동하지 않습니다. 어떤 제안? – Eric

+0

신경 쓰지 마라. 알아 냈어! – Eric

+0

제출 기능에서 drupal_goto()를 사용하고 있습니까? 재정의하지 않으면 사용자를 사용자 페이지로 리디렉션하지 않아야합니다. drupal_goto()가 나에게 잘 작동하기 전에 drupal_set_message()를 사용하십시오. –

관련 문제