sai*_*eto 4 php api post sendgrid laravel
I have a route for handling incoming POST data in laravel:
Route::get('/sendgrid/api', 'SendGrid\EmailEventsController@parse');
Run Code Online (Sandbox Code Playgroud)
Here's my controller:
namespace App\Http\Controllers\SendGrid;
use App\Http\Controllers\Controller;
use App\Models\SendGrid\EmailEvents;
class EmailEventsController extends Controller
{
public function parse()
{
$contents = file_get_contents("php://input");
$requests = json_decode($contents);
$data = array();
foreach ($requests as $request)
{
array_push($data, array(
'email' => $request->email,
'event' => $request->event,
'category' => $request->category
));
}
EmailEvents::insert($data);
}
}
Run Code Online (Sandbox Code Playgroud)
But still doesn't work. What did I do wrong?
小智 5
首先,你可以改变你的路线看起来像这样
Route::any('/sendgrid/api', 'SendGrid\EmailEventsController@parse');
Run Code Online (Sandbox Code Playgroud)
然后,您必须在 Middleware > VerifyCsrfToken 中忽略未使用的 csrf
并添加您的代码如下所示
protected $except = [
'/sendgrid/api',
];
Run Code Online (Sandbox Code Playgroud)
你可以使用和改变
$contents = file_get_contents("php://input");
Run Code Online (Sandbox Code Playgroud)
到
$contents = $request->getContent();
Run Code Online (Sandbox Code Playgroud)
我希望这段代码可以帮助您解决问题。谢谢
| 归档时间: |
|
| 查看次数: |
2843 次 |
| 最近记录: |