我正在使用来自SMS提供商的API(是的,它需要是这个提供商,所以我坚持使用它),但他们的文档还有很多不足之处,包括示例和支持。
我正在试图找出他们不同的回调,但我不知道他们究竟发回了什么。有没有办法编写一个PHP脚本来捕获任何传入的文件响应。响应看起来像这样(但不是唯一的),所以我想发送几个电话(正确和错误)并记录我得到的。
{
"api_job_id":"4c2478d3-aebb-4510-8720-1b479d01cfd5",
"client_job_id":"abc123456",
"data":[
{
"type":"SMS",
"message_id":"14182390945378443202",
"status":"SENT",
"timestamp":1422885283,
"micro_timestamp":1422885283477,
"to":"XXXXXXXXX",
"from":"CompanyA",
"client_message_id":"2",
"error_code":0
}
]
}
答案 0 :(得分:0)
对于任何想要捕获调试请求等的人,我只是巧合地找到了Hookbin.com。
答案 1 :(得分:0)
这可能就是你要找的东西:
<?php
$logfile = dirname(__FILE__).'/SMScallback.log'; // change if necessary
foreach($_GET as $key => $value) {
$header = 'callback_key: "' . $key . '", received: ' . gmdate('Y-m-d H:i:s') . ' (UTC)'. ', contents:' . PHP_EOL;
if (version_compare(PHP_VERSION, '5.4.0') >= 0) {
$tmparray = (array)json_decode($value);
$json = json_encode($tmparray, JSON_PRETTY_PRINT);
} else {
$json = $value;
}
file_put_contents($logfile, $header . $json. PHP_EOL . PHP_EOL, FILE_APPEND);
echo "Saved to file '$logfile'";
}
// http://www.example.com/smscallback.php?callbck1={"api_job_id":"4c2478d3-aebb-4510-8720-1b479d01cfd5","client_job_id":"abc123456","data":[{"type":"SMS","message_id":"14182390945378443202","status":"SENT","timestamp":1422885283,"micro_timestamp":1422885283477,"to":"XXXXXXXXX","from":"CompanyA","client_message_id":"2","error_code":0}]}
?>
该脚本接受任何GET参数。它将GET密钥,当前日期和时间(UTC)以及GET参数的值写入(附加)到服务器上的日志文件中。
注意:Web服务器必须具有日志文件的写权限。