Как автоматически запускать маршруты - Laravel - PullRequest
0 голосов
/ 09 ноября 2018

Я создал свои веб-хуки для своих приложений, которые работают нормально. Но я заметил, что прежде чем мои веб-хуки будут работать, я должен зарегистрировать их, запустив маршрут в браузере, прежде чем они будут зарегистрированы.

Так что, если мой маршрут https://example.domain/order-create-webhook, мне нужно запустить этот маршрут, чтобы вызвать функцию registerOrderCreateWebhook(), чтобы зарегистрировать мой веб-хук в приложении раньше, я могу начать получать ответ от Shopify.

Теперь мой вопрос, есть ли способ, по которому я могу автоматически запустить этот маршрут, когда пользователь устанавливает приложение, чтобы мне не пришлось вручную регистрировать свои веб-хуки из браузера

Примечание: я добавил свой auth (), который регистрирует / устанавливает нового пользователя для приложения

Контроллер

public function auth(Request $request)
{



 $shared_secret = env('SHARED_SECRET');
    $params = $_GET; 
    $shop_name = $request->shop;
    $shopUrl = $request->domain;
    $hmac = $request->hmac;
    $code = $request->code;
    $params = array_diff_key($params, array('hmac' => ''));
    ksort($params); 


    $computed_hmac = hash_hmac('sha256', http_build_query($params), $shared_secret);


        $api_key = "*****";
        $shared_secret = "****";
        $query = array(
        "client_id" => $api_key, // Your API key
        "client_secret" => $shared_secret, // Your app credentials (secret key)
        "code" => $request->code // Grab the access key from the URL
        );

        $shopUrl = $shop_name;
        $access_token_url = "https://" . $shopUrl . "/admin/oauth/access_token";


        // Store the access token
        $result = json_decode($result, true);
        $access_token = $result['access_token'];
        // dd($access_token);



    // Valicate Shopify's request
    if (hash_equals($hmac, $computed_hmac)) {
        if (! User::where('site', '=', $shop_name)->exists()) {

            // Create a new user account                 
            $new_user = new User;
            $new_user->site = $shop_name;
            $new_user->access_token = $access_token;
            $new_user->save();
        }

        // Get current user, login and redirect to dashboard
        $user = User::where('site', '=', $shop_name)->firstOrFail();
        Auth::login($user);
        return redirect('/home');

    } 
    else 
    {
        abort(401, 'Unauthorized action.');
    }
}

  public function registerOrderCreateWebhook()
            {
                    $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/updated',
                     'address' => 'https://example.domain.com/order-update-webhook',
                     'format' => 'json'
                     ]
                    ]);
            }

Маршрут

Route::get('order-create-webhook', Controller@registerOrderCreateWebhook);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...