Тема: [Вконтакте] iFrame-приложение и crossdomain.xml
Показать сообщение отдельно
Старый 07.10.2010, 21:03
afarber вне форума Посмотреть профиль Отправить личное сообщение для afarber Посетить домашнюю страницу afarber Найти все сообщения от afarber
  № 10  
Ответить с цитированием
afarber
 
Аватар для afarber

Регистрация: May 2006
Адрес: Germany
Сообщений: 74
Спасибо, но мини-прелоадер неподходит - т.к. у меня один и тот же мувик для ВКонтакте, Одноклассников, Мейл.ру и др., и главное - пользователи с разных соц. сетей заходят и друг с другом играют.

Способ вроде http://snipplr.com/view/14489/gettin...images-in-as3/ на самом деле тоже не работает.

Наверное сделаю просто прокси-скриптик на PHP, т.к. Одноклассники даже еще хуже чем ВКонтакте - "*" в crossdomain.xml у них есть, но без пароля (или сессии? еще не проверял) они выдают картинку-заглушку.

Добавлено через 7 часов 59 минут
Для вКонтакте я написал такой прокси,
а для Одноклассников пока не придумал:

PHP код:
<?php
define
('MAX_SIZE', 1024 * 1024);

$img = $_GET['img'];
if (
strpos($img, '..') !== false ||
    !
preg_match(',^http://[\w.]*vkontakte\.ru/[\w./?]+$,', $img))
        exit();

$opts = array(
        
'http'=>array(
                
'method' => 'GET',
                
'header' => "Accept-language: en\r\n" .
                            
"Cookie: foo=bar\r\n"
        
)
);

$ctx = stream_context_create($opts);
stream_context_set_params($ctx, array('notification' => 'callback'));
header('Content-Type: ' . $mime);
$fp = fopen($img, 'r', false, $ctx);
fpassthru($fp);
fclose($fp);

function 
callback($code, $severity, $message, $message_code, $bytes_transferred, $bytes_max) {
        if (
$code == STREAM_NOTIFY_FILE_SIZE_IS && $bytes_max > MAX_SIZE)
                exit();

        if (
$code == STREAM_NOTIFY_PROGRESS && $bytes_transferred > MAX_SIZE)
                exit();

        if (
$code == STREAM_NOTIFY_MIME_TYPE_IS) {
                
$mime = strtolower($message);
                switch(
$message) {
                        case 
'image/gif':
                        case 
'image/png':
                        case 
'image/jpg':
                        case 
'image/jpeg':
                                break;
                        default:
                                exit();
                }
        }
}

?>
Если есть предложения по Одноклассникам или как еще надежней сделать прокси-скрипт (чтобы не взломать), пишите.

Думал еще добавить какую-нибудь проверку md5,
чтобы не вызывали с чужих сайтов, но пока не придумал
(из-за дизассемблеров флеша).