我试图通过Drupal站点设置Tropo的WebAPI,我想我只是为example.com/tropo创建一个hook_menu()回调,然后使用我刚创建的hook_menu回调来消耗Tropo的API调用(其中包含一个简单的JSON数据数组),然后响应。
我可以很轻松地完成响应部分...构建数据,drupal_json_output()并退出(基本上只是返回JSON)。
我遇到问题的部分是获取发送到/ tropo菜单回调的数据...我无法使用以下两种方法之一来访问任何数据:
$json = file_get_contents("php://input"); // returns NULL
(下面使用inputstream模块:)
$json = file_get_contents("drupal://input"); // also returns NULL
我检查了其他一些模块的功能,看起来它们使用hook_init来获取JSON。这是首选方法吗?我很希望能够在hook_menu中使用自己的路径,例如...
另外,如果需要的话,我会写自己的PHP脚本并在Drupal之外运行,还是对数据库进行引导,这会更好吗?
菜单回调将获得哪些数据,以及将那些数据传递给菜单回调(外部服务器或其他)的原因是什么?您可以控制数据格式吗?
—
kiamlaluno
来自:php.net/manual/en/wrappers.php.php:“ php:// input允许您从请求正文中读取原始数据。在POST请求的情况下,它比$ HTTP_RAW_POST_DATA更可取,因为它不依赖于特殊的php.ini指令。此外,对于默认情况下不填充$ HTTP_RAW_POST_DATA的那些情况,它可能是比调用always_populate_raw_post_data更少的内存密集型。php:// input不适用于enctype =“ multipart / form-data” ”。这可能与您有关吗?
—
Berdir 2011年
我已经尝试了php:// input,但这似乎什么也没有。当我使用inputstream时,drupal:// input返回'1':(
—
geerlingguy
@kiamlaluno-我正试图将数据从Tropo服务器发布到URL / tropo;他们提交了一些包含呼叫者电话号码的JSON,我需要对其进行响应。但是我无法获取JSON,因此无法获取电话号码:(
—
geerlingguy