Advertisement
Guest User

Untitled

a guest
Feb 17th, 2020
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 3.08 KB | None | 0 0
  1. <table class="ad_signup">
  2.   <tr>
  3.     <td colspan = 2>
  4.       <div class="centered large_title">Connect To Facebook and Google Ads to Enable Social advertising</div>
  5.     </td>
  6.   </tr>
  7.   <tr>
  8.     <td valign="center">
  9.       <div>
  10.         <div class="centered vertical_large">
  11.           <div class="adware_label">Facebook Ads</div>
  12.           <div class="button button_grey" id="facebook-login">
  13.             <%= image_tag "/assets/admin/icons/facebook-128.png", class: "button_icon" %>
  14.             <span class="facebook-login-text">Facebook</span>
  15.           </div>
  16.         </div>
  17.       </div>
  18.     </tdv>
  19.     <td valign="center">
  20.       <div class="centered vertical_large">
  21.         <div class="adware_label">Google Ads</div>
  22.         <div class="button button_grey">
  23.           <%= image_tag "/assets/admin/icons/google-128.png", class: "button_icon" %>
  24.           <span>Google</span>
  25.         </div>
  26.       </div>
  27.     </td>
  28.   </tr>
  29. </table>
  30.  
  31. <script>
  32.   window.fbAsyncInit = () => {
  33.  
  34.    // 401 errors happens here:
  35.     const checkExistingToken = () => {
  36.       $.get({
  37.         url: '/admin/accounts/<%= current_user.current_account_id %>.json'
  38.       }, (data) => {
  39.         console.log(data);
  40.  
  41.         if (data.facebook_token) {
  42.           $('.facebook-login-text').html('Facebook <i class="fa fa-check"></i>');
  43.         }
  44.       })
  45.     }
  46.  
  47.     checkExistingToken();
  48.  
  49.     const login = () => {
  50.       FB.getLoginStatus((response) => {
  51.  
  52.         // If user is not logged in:
  53.         if (response.status !== 'connected') {
  54.           FB.login((loginResponse) => {
  55.             if (!loginResponse.authResponse) {
  56.               return
  57.             }
  58.  
  59.             let token = loginResponse.authResponse.accessToken
  60.             updateUserFbToken(token);
  61.             $('.facebook-login-text').html('Facebook <i class="fa fa-check"></i>');
  62.  
  63.           }, { scope: 'ads_management,ads_read,business_management,manage_pages,publish_pages' })
  64.         } else {
  65.           FB.logout();
  66.           $('#facebook-login > span').html('Facebook');
  67.         };
  68.       });
  69.     }
  70.  
  71.     const updateUserFbToken = (value) => {
  72.       $.ajax({
  73.         method: 'PUT',
  74.         url: '/admin/accounts/<%= current_user.current_account_id %>',
  75.         data: {
  76.           authenticity_token: $('[name="csrf-token"]')[0].content,
  77.           'account[facebook_token]': value,
  78.           ajax: true
  79.         }
  80.       })
  81.     }
  82.  
  83.     $('#facebook-login').click(() => {
  84.       login()
  85.     })
  86.  
  87. // Facebook scripts injection
  88.  
  89.     FB.init({
  90.       appId: "<%= Rails.application.credentials.facebook[:app_id] %>",
  91.       cookie: true,
  92.       xfbml: true,
  93.       version: "<%= Rails.application.credentials.facebook[:api_version] %>"
  94.     });
  95.  
  96.     FB.AppEvents.logPageView();
  97.   };
  98.  
  99.   (function (d, s, id) {
  100.     var js, fjs = d.getElementsByTagName(s)[0];
  101.     if (d.getElementById(id)) { return; }
  102.     js = d.createElement(s); js.id = id;
  103.     js.src = "https://connect.facebook.net/en_US/sdk.js";
  104.     fjs.parentNode.insertBefore(js, fjs);
  105.   }(document, 'script', 'facebook-jssdk'));
  106.  
  107. // End Facebook scripts injection
  108. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement