Я создал веб-хуки для своего приложения для отправки сообщений, когда заказ сделан заказчиком. Я хочу знать, как я могу зарегистрировать веб-хук, когда пользователь устанавливает приложение.
Ниже приведена функция установки приложения и функция установки webhook.
Есть ли способ сделать мой маршрут автоматически запущенным во время выполнения install()
, так что мой веб-хук будет зарегистрирован как пользователь, устанавливающий приложение.
Как я могу это сделать?
Контроллер
public function install(Request $request)
{
$shop_name = $request->domain;
$scopes = 'read_script_tags,write_script_tags,read_products,write_products,read_customers, write_customers,read_orders, write_orders,read_checkouts, write_checkouts,read_draft_orders,write_draft_orders';
$url = 'https://'.$shop_name.'/admin/oauth/authorize?client_id='.env('API_KEY').'&scope='.$scopes.'&redirect_uri='.env('APP_URL').'/auth';
return redirect($url);
}
//webhook to be registered as user installs
public function registerOrderPlaceWebhook()
{
$shop = Auth::user()->site;
$token = Auth::user()->access_token;
$shopify = Shopify::setShopUrl($shop)->setAccessToken($token);
Shopify::setShopUrl($shop)->setAccessToken($token)->post("admin/webhooks.json", ['webhook' =>
['topic' => 'orders/create',
'address' => 'https://example.domain.com/order-create-webhook',
'format' => 'json'
]
]);
}
Маршрут
Route::get('order-create-webhook', Controller@registerOrderPlaceWebhook);