我正在尝试扩展Drupal网站的功能,使其包含Tropo服务。我绝对需要能够访问我的Drupal数据库和Drupal为它自己的工作提供给我的API。我在编写Drupal模块方面还是个新手,但现在似乎发生的情况是,Tropo无法将我的.module文件识别为PHP,因此它无法接收必要的JSON调用。
我需要a)一种让Tropo从我的.module文件中读取的方法,或者b)一种向我的模块添加常规.php文件的方法,这样我仍然可以进行所有普通的Drupal函数调用,Tropo可以访问我的脚本。
有什么想法?
发布于 2012-01-04 02:48:53
在Drupal中,您不能直接从web运行.module文件。每个模块都应该实现hook_menu,这个钩子会创建您要使用的URL。所以你给Tropo的是yourmodule_menu创建的URL,而不是yourmodule.module的路径。
例如,下面是Tropo的一个示例模块中的hook_menu。
<?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,你应该把你的网址设为http://example.com/demo/answer。然后,当有人呼叫您的Tropo电话号码时,demo_answer()函数将运行,它会说出"Hello.和Goodbye“。然后就挂断了。
我在一次关于使用Drupal作为应用程序框架的演讲中使用了一个简单的演示模块,这可能会有所帮助--我在演示中广泛使用了Tropo。https://github.com/akalsey/drupal-framework-demo
电话投票模块也是一个很好的例子。它使用Tropo将语音和短信添加到Drupal6的内置投票模块中。http://drupal.org/project/phonepoll
您可能还想看看VoipDrupal。这允许您直接在Drupal中构建与Tropo等服务交互的脚本。http://drupal.org/project/voipdrupal
https://stackoverflow.com/questions/8716348
复制相似问题