2012-01-03 10 views
0

私は、Tropoサービスを含むDrupal Webサイトの機能を拡張しようとしています。私は、Drupalが自分自身の仕事のために私に提供するDrupalデータベースとAPIにアクセスできることが絶対に必要です。私はDrupalモジュールを書くのはかなり新しいですが、今起こっていることは、Tropoが自分の.moduleファイルをPHPとして認識できないので、必要なJSON呼び出しを受け取らないということです。Tropo WebAPI with Drupal Module

私は、私の.moduleファイルからTropoを読み込む方法、または通常の.phpファイルを私のモジュールに追加して、すべての通常のDrupal関数呼び出しとTropoができるようにする方法が必要です私のスクリプトにアクセスしてください。

思考?

答えて

2

Drupalでは、.moduleファイルをWebから直接実行することはできません。各モジュールはhook_menuを実装する必要があり、そのフックは使用するURLを作成します。つまり、yourmodule.moduleへのパスではなく、yourmodule_menuによって作成されたURLをTropoに与えます。

たとえば、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としてdemo/answerを定義します。あなたのサイトがexample.comの場合、TropoにURLをhttp://example.com/demo/answerと指定します。その後、誰かがTropoの電話番号を呼び出すと、demo_answer()関数が実行され、 "Hello。And Goodbye"と発音します。その後、ハングアップします。

デモではTropoを幅広く使用しているアプリケーションフレームワークとしてDrupalを使用する方法について、私が使ったシンプルなデモモジュールがあります。 https://github.com/akalsey/drupal-framework-demo

電話投票モジュールも良い例です。 Tropoを使用してDrupal 6の内蔵ポーリングモジュールに音声とSMSを追加します。 http://drupal.org/project/phonepoll

VoipDrupalもご覧ください。これにより、Tropoのようなサービスとやり取りするスクリプトをDrupalで直接ビルドすることができます。 http://drupal.org/project/voipdrupal

+0

詳細な回答とコードサンプルをありがとう!私は今これを試している:)。 – Chiubaka

+0

私が働くことができなかった唯一のものは許可でした。私はURL:/を入力するたびにアクセス拒否ページを取得しました。いくつかの調査をした後、私は単に 'access callback'という行を挿入することにしました=> TRUE – Chiubaka

+0

あなたはあなたが使っていたDrupalのバージョンは言及していませんでした。メニューアクセスAPIは時間の経過とともに少し変化しました。上記の例はDrupal 7でも動作するはずですが、 "誰でもそのURLにアクセスできるようにしたい場合は、" '' access callback '=> TRUE' 'を実行してください。 –

関連する問題