0

SendGridイベントをサーバーにポストしようとしています。しかし、私はデータをキャプチャすることができません。テスト機能から試してみると、応答コードが 200 で、投稿されたデータが表示されています。しかし、サーバー側でキャプチャできません。次のコードを使用しています

<?php
$postText = trim(file_get_contents('php://input'));
print_r($postText);
$fh = fopen('/tmp/dump.log','a+');
fwrite($fh,print_r($postText),'true');
fclose($fh);
?>

ファイルには何も書き込まれません。テストのために同じファイルに何かを書き込もうとしましたが、動作しています。したがって、ファイルにはすべての権限があると思います。

4

2 に答える 2

2

これがすでに機能していることは知っていますが、私が使用しているサンプル コードを共有したいと思います。(開示:私はSendGridの従業員です)

独自のコードと非常に似ていますが、RAW_POST_DATA グローバルを使用すると、すべての POST データを 1 回で簡単に取得できます。

<?php

$fh = fopen("/tmp/sg_event.log", 'a+');
if ($fh) {
    fwrite($fh, print_r($HTTP_RAW_POST_DATA, true));
    fclose($fh);
}
?> ok
于 2013-09-27T21:00:28.113 に答える
1

これは、print_r関数に 2 番目の引数を渡さないことでデータを出力するためです!

この行:fwrite($fh,print_r($postText),'true');代わりに次のようになります。fwrite($fh,print_r($postText, true));

于 2013-09-27T21:08:41.927 に答える