Можно ли получить домен, в который встроено мое Flash-приложение? - PullRequest
1 голос
/ 12 января 2010

Компания, в которой я работаю, имеет свой собственный видеоплеер на базе Flash, и вопрос, который я получаю от наших руководителей: «Можем ли мы сказать, на каком веб-сайте встроен наш плеер?»

Сначала я предположил, что мог бы использовать Apache mod_rewrite, извлечь HTTP_REFFER и добавить его в конец запрошенного URL. Так что, когда браузер получает http: //.../viewer.swf, я мог бы набрать?

Однако я не думаю, что наш CDN будет обслуживать наш файл htaccess. Кроме того, в основном все записи access_log показывают тире, а не домен.

Итак, я задаю этот вопрос нам, чтобы узнать, поймал ли я какие-либо идеи или решения. В настоящее время все указывает на «невозможно».

Ответы [ 5 ]

0 голосов
/ 25 февраля 2010

Мне удалось разработать метод получения реферера с использованием mod_rewrite. Вопрос ниже относится к методу. По сути, с помощью правил перезаписи я могу захватить реферер, а затем перенаправить на фактический SWF-файл с добавленной строкой запроса.

Возможно ли получить имя хоста только из HTTP_REFERER с mod_rewrite?

0 голосов
/ 12 января 2010

Может быть, это неправильно, но я думаю, вы можете просто так это понять. Поместите этот код на корневой уровень вашего приложения (на временной шкале на сцене или в классе вашего документа):

trace(this.loaderInfo.url)

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

Редактировать: о, верно - как только у вас это есть, довольно просто написать веб-сервис, который будет принимать это как строку и сохранять ее в БД или где-либо еще. Возможно, вы даже сможете связать его с аналитической службой - MyAnalyticsFunction.call (myUrl) - и она позаботится об этом за вас, но это зависит от того, как вы настроены.

Но, короткий ответ - да, .swfs знают, где они живут.

0 голосов
/ 12 января 2010

Используйте ExternalInterface, который может выполнять вызовы функций JavaScript на родительской странице:

import flash.external.ExternalInterface;

var url:String = ExternalInterface.call('window.location.href.toString');

Единственная проблема с этим заключается в том, что если у пользователя отключен JavaScript, то значение URL будет нулевым.

0 голосов
/ 12 января 2010

Реферер обычно сохраняется в файле журнала доступа для каждого запроса, не так ли?

Разве не проще всего найти файл журнала доступа CDN для звонков во встроенный проигрыватель фильмов?

Если это не вариант: я не флешмейкер, но должно быть возможным, чтобы каким-то образом получить доступ к рефереру фильма в фильме, используя Actionscript, без проблем с междоменной безопасность. В конце концов, это информация, которая доступна, когда сделан запрос к фильму.

0 голосов
/ 12 января 2010

Предостережение: я совсем не знаю вспышку ...

Не знаю точно, как именно вам нужно захватить это, но возможно ли, чтобы ваш флеш-плеер захватил URL-адрес на клиенте (или, возможно, содержащий фрейм?) И затем POST / PUT / GET вернул его на сервер? Я думал, что это можно сделать после получения viewer.swf, но до открытия потока контента (базовое предположение о том, как работают игроки).

Не уверен, полезно ли это или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...