我一直试图在我的Laravel项目上建立WhatsApp云API。当有人发送消息时,我被困在尝试设置web钩子以接收WhatsApp通知。下面是我的代码,它不是简单地给出服务器错误或405方法不允许的错误,在WhatsApp云api方面它没有通过验证点。
API接口
Route::GET('/webhook' , 'admin\InventoryInvoiceController@webhook')->name('webhook');控制器
public function webhook() {
if($_SERVER['REQUEST_METHOD']=="GET"){
echo $_GET['hub_challenge']; //respond back hub_callenge key
http_response_code(200);
}else{
$data = json_decode(file_get_contents('php://input'), true);
error_log(json_encode($data)); //print inbound message
}
}我已经将此路由添加到异常中,因此它是在需要CSRF验证时运行的。在Whatsapp API云端接收到的错误:
无法验证
回调URL或验证令牌。请验证所提供的信息,或稍后再试。
接下来我能试试什么?
发布于 2022-08-29 15:20:13
问题是我没有将我的路由添加到CSRF异常中,这将使Whatsapp云api发送的请求无效。测试前一定要这样做!以下是代码:
public function webhook(Request $request) {
$mode = $request->hub_mode;
$challenge = $request->hub_challenge;
$token = $request->hub_verify_token;
echo $challenge;
}
public function __construct() {
$this->middleware('auth:admin',
['except' => ['webhook', 'webhookpost']]
);https://stackoverflow.com/questions/73490389
复制相似问题