1

Я создал сценарий, похожий на Google Analytics (создает сценарий загрузки, перетаскивает данные в массив, используется в размещенном скрипте для хранения данных отслеживания в база данных) для использования в мгновенной статье Facebook, чтобы я мог отслеживать статистику внутри моего программного обеспечения. Но проблема в том, что Facebook дает ПЕС ошибку по поводу моего сценария:Пользовательский код отслеживания с Facebook Мгновенные статьи Нарушения op-tracker и CSP

Refused to load the script 'https://My-Domain.com/js/w_analytics.js' 
because it violates the following Content Security Policy directive: 
"script-src *.facebook.com *.fbcdn.net *.facebook.net *.google-analytics.com 
*.virtualearth.net *.google.com 127.0.0.1:* *.spotilocal.com:* 
'unsafe-inline' 'unsafe-eval' fbstatic-a.akamaihd.net 
fbcdn-static-b-a.akamaihd.net *.atlassolutions.com blob: data: 'self'". 

Мгновенной Статья разметка все правильно со сценарием внутри ожидаемого блока кода:

<figure class="op-tracker"> 
    <iframe> [code] </iframe> 
</figure> 

Я в настоящее время отладки это с помощью отладки страницы Facebook в: http://ww.ia-tracker.fbsbx.com/instant_article_test?url=<share_url>

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

Facebook документы говорят, что вы можете сделать прямую ссылку на АП, например, так:

<figure class="op-tracker"> 
     <iframe src="http://my-url-tracker.com/"> 
      <!-- 
      The request to http://my-url-tracker.com/ will be rewritten to 
      include the following query parameters: 

      ia_share_url: The URL the user shared 
      ia_title: The article title 
      --> 
     </iframe> 
</figure> 

Но проблема в том, что он говорит, что отправляет только эти два параметр, когда мой собственный трекер принимает больше информации, которая необходимых для моего программного обеспечения (например, строки UA), поэтому в идеале я бы хотел избежать этого подхода.

У кого-нибудь еще есть опыт использования пользовательских сценариев отслеживания для этого?

ответ

1

После возни на это в течение нескольких дней, я получил его на работу, используя op-tracker с iframe src на мой пользовательском скрипт отслеживания, например, так:

<figure class="op-tracker"> 
     <iframe src="http://my-url.com/tracker.php"></iframe> 
</figure> 

Документы Facebook не дает много информации о этот метод, и они опускают небольшой кусочек информации: есть третий параметр, который послал ссылающейся ia_referrer (это возвращает в качестве ia.facebook.com)

Вы можете использовать комбинацию $_GET и $_SERVER на ваш «tracker.php» скрипт для захвата другие детали, необходимые для вашего скрипта, например:

$instantArticleURL = urldecode($_GET['ia_share_url']); 
    $HTTPreferrer = $_GET['ia_referrer']; 
    $userAgent = $_SERVER['HTTP_USER_AGENT']; 
    $visitorIP = $_SERVER['REMOTE_ADDR']; 

Вам также может понадобиться включить это header() в вашем tracker.php, чтобы убедиться, что Facebook может получить доступ скрипт (изменить его в соответствии с потребностями вашего сайта, очевидно):

header("Access-Control-Allow-Origin: https://www.facebook.com");

Надеюсь, это спасти кого-то еще несколько дней головной боли :)