2012-01-03 2 views
0

Я пытаюсь расширить функциональность веб-сайта Drupal, включив службу Tropo. Мне абсолютно необходимо иметь доступ к моей базе данных Drupal и API, которые Drupal предоставляет мне для своих собственных разработок. Я довольно новичок в написании модулей Drupal, но сейчас похоже, что Tropo не может распознать мой файл .module как PHP, поэтому он не получает необходимые JSON-вызовы.Tropo WebAPI с модулем Drupal

Мне нужно либо a) способ получить Tropo для чтения из моего файла .module, либо b) способ добавления в мой модуль обычного файла .php, чтобы я мог выполнять все обычные вызовы функций Drupal. И Tropo может доступ к моему скрипту.

Мысли?

ответ

2

В Drupal вы не можете запускать файлы .module непосредственно из Интернета. Каждый модуль должен реализовать hook_menu, и этот крючок создает URL-адреса, которые вы используете. Таким образом, вы дадите Tropo URL-адрес, созданный вашим модулем, а не путь к вашему модулю.

Например, вот hook_menu из примерного модуля для Tropo.

<?php 
function demo_menu() { 
    $items = array(); 

    // Set up a route for the incoming call 
    $items['demo/answer'] = array(
    'page callback' => 'demo_answer', 
    'access arguments' => array('access content'), 
    'type' => MENU_NORMAL_ITEM, 
); 

    return $items; 
} 

function demo_answer() { 
    module_load_include('php', 'tropo', 'lib/tropo/tropo.class'); 
    $tropo = new Tropo(); 
    $tropo->say('Hello. And Goodbye.'); 
    print $tropo; 
} 

?> 

Функция demo_menu определяет демо/ответ в качестве URL-адреса вашего сайта. Если ваш сайт был в example.com, вы бы указали Tropo на ваш URL как http://example.com/demo/answer. Затем, когда кто-то звонит на ваш номер телефона Tropo, будет выполняться функция demo_answer(), которая говорит «Привет. И до свидания». а затем вешает трубку.

Существует простой демонстрационный модуль, который я использовал в разговоре об использовании Drupal в качестве рамок приложения, которые могут помочь - я очень широко использую Tropo в демонстрации. https://github.com/akalsey/drupal-framework-demo

Модуль опроса телефона также будет хорошим примером. Он использует Tropo для добавления голоса и SMS в встроенный модуль опроса Drupal 6. http://drupal.org/project/phonepoll

Возможно, вы также захотите взглянуть на VoipDrupal. Это позволяет создавать скрипты непосредственно в Drupal, которые взаимодействуют с такими сервисами, как Tropo. http://drupal.org/project/voipdrupal

+0

Спасибо за подробные ответы и образцы кода! Я пробую это сейчас :). – Chiubaka

+0

Единственное, на что я не мог работать, это разрешения. В результате я получал страницу «Отказано в доступе» каждый раз, когда я ввел URL-адрес: /. После некоторых исследований я решил просто вставить строку «обратный вызов доступа» => TRUE – Chiubaka

+0

. Вы не указали, какую версию Drupal вы использовали. Доступ к меню api со временем изменился. Приведенный выше пример должен работать на Drupal 7, но «« обратный вызов доступа »=> ИСТИНА» также будет делать трюк, если вы уверены, что всегда хотите, чтобы все имели доступ к этому URL-адресу. –