How to register Web-hooks on during app install - Laravel & Shopify









up vote
0
down vote

favorite












I have created web-hooks for my application to send messages when order is placed by customer. I want to know how i can register the web-hook as the user is installing the app.



Below is the function to install app and the function to install webhook.



Is there a way i can make my route auto run as the install() is executing so that my web-hook will be registered as user is installing application.



How can i do this?



Controller



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



Route::get('order-create-webhook', Controller@registerOrderPlaceWebhook);









share|improve this question

























    up vote
    0
    down vote

    favorite












    I have created web-hooks for my application to send messages when order is placed by customer. I want to know how i can register the web-hook as the user is installing the app.



    Below is the function to install app and the function to install webhook.



    Is there a way i can make my route auto run as the install() is executing so that my web-hook will be registered as user is installing application.



    How can i do this?



    Controller



    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



    Route::get('order-create-webhook', Controller@registerOrderPlaceWebhook);









    share|improve this question























      up vote
      0
      down vote

      favorite









      up vote
      0
      down vote

      favorite











      I have created web-hooks for my application to send messages when order is placed by customer. I want to know how i can register the web-hook as the user is installing the app.



      Below is the function to install app and the function to install webhook.



      Is there a way i can make my route auto run as the install() is executing so that my web-hook will be registered as user is installing application.



      How can i do this?



      Controller



      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



      Route::get('order-create-webhook', Controller@registerOrderPlaceWebhook);









      share|improve this question













      I have created web-hooks for my application to send messages when order is placed by customer. I want to know how i can register the web-hook as the user is installing the app.



      Below is the function to install app and the function to install webhook.



      Is there a way i can make my route auto run as the install() is executing so that my web-hook will be registered as user is installing application.



      How can i do this?



      Controller



      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



      Route::get('order-create-webhook', Controller@registerOrderPlaceWebhook);






      php laravel






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 9 at 14:02









      Jonathan Feud

      588




      588



























          active

          oldest

          votes











          Your Answer






          StackExchange.ifUsing("editor", function ()
          StackExchange.using("externalEditor", function ()
          StackExchange.using("snippets", function ()
          StackExchange.snippets.init();
          );
          );
          , "code-snippets");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "1"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













           

          draft saved


          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53227165%2fhow-to-register-web-hooks-on-during-app-install-laravel-shopify%23new-answer', 'question_page');

          );

          Post as a guest



































          active

          oldest

          votes













          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes















           

          draft saved


          draft discarded















































           


          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53227165%2fhow-to-register-web-hooks-on-during-app-install-laravel-shopify%23new-answer', 'question_page');

          );

          Post as a guest














































































          Popular posts from this blog

          How to how show current date and time by default on contact form 7 in WordPress without taking input from user in datetimepicker

          Syphilis

          Darth Vader #20