|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
iFrame - Security sandbox и постинг на стену
И так за основу постинга брал эту публикацию
Проблема вот в чем. Приложение в ifreme, т.е. оно пасется на домене не относящемся к vk. Постинг на стену производится в несколько этапов, в первом получаю через метод photos.getWallUploadServer урл куда будем заливать byteArray, но при попытке передать по полученному урлу срабатывает ошибка: #2048: Security sandbox violation: http://myCrazySite.ru/flash.swf cannot load data from http://cs9702.vkontakte.ru/upload.php?act=do_add... Как побороть sandbox? Добавлено через 22 часа 32 минуты В инете столько криво работающего кода или вообще не работающих что просто поражаешься сколько всего порой приходится перебрать что бы найти подходящее... а то и вовсе проще написать заново. Поэтому случаю вспомнился анекдот... Препод: «Недоделанный отчёт — это не беда. Главное, когда будете делать детей — доделайте их! А то потом приходят недоделанные дети и приносят недоделанные отчёты. И никак не прервать этот замкнутый круг.» А вот и сам скрипт (посредник) отправляющий изображение POST запросом на сервер вконтакте. Не забываем делать предварительный encode ссылок в Base64 <?php ////////////////////////////// // PHOTO UPLOADER VKONTAKTE // // v 1.0 - 05.07.2011 by VZ // ////////////////////////////// $upload_url = base64_decode($_GET["upload_url"]); // ссылка на сервер вконтакте полученная с помощью медода wall.getPhotoUploadServer $photo_url = base64_decode($_GET["photo_url"]); // ссылка на изображение которое необходимо залить на сервер if(empty($upload_url) || empty($photo_url)) { die("Приняты не все параметры"); } $ext = getExtension($photo_url); // Получаем расширение if( $ext == strtoupper("jpg") || $ext == strtoupper("png") || $ext == strtoupper("bmp") || $ext == strtoupper("gif") ) { // То что нужно =) } else { die("Не верный формат изображения (JPG, PNG, BMP или GIF)"); } $file = fopen($photo_url,'r'); $size = filesize($photo_url); $postParams = array( 'photo'=>"@$photo_url", ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $upload_url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_VERBOSE, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_INFILESIZE, $size); curl_setopt($ch, CURLOPT_INFILE, $file); curl_setopt($ch, CURLOPT_POSTFIELDS, $postParams); $response = curl_exec($ch); // echo $response; // Ответ с JSON который содержит id photo залитой в вконтакт $response = json_decode($response, true); echo $response["photo"]; // id function getExtension($filename) { return strtoupper(end(explode(".", $filename))); } ?>
__________________
www.vadimuz.ru Последний раз редактировалось VadimuZ; 05.07.2011 в 17:50. |
Часовой пояс GMT +4, время: 02:27. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|