Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   Проблема с загрузкой аватаров Вконтакте ( crossdomain.xml = 404 ) (http://www.flasher.ru/forum/showthread.php?t=213680)

garymar 13.12.2016 02:13

Проблема с загрузкой аватаров Вконтакте ( crossdomain.xml = 404 )
 
Вложений: 3
Привет всем.

Периодически не грузятся аватары Вконтакте. Пишет https://pp.vk.me/crossdomain.xml - 404 (нету на серваке).

Приложение грузится через iFrame

Кто знает как с этим бороться?

caseyryan 13.12.2016 05:41

Естественно его там нет. Делай проксирование аватарок через свой сервер. Я так обходил все кроссдоменные проблемы при работе через iFrame с разных социалок

strangedk 13.12.2016 16:06

@caseyryan, ты имеешь в виду делать запрос на свой сервер с правильным crossdomain, а он уже обращается на сервер VK за аватарками?

А как там с безопасностью, если api-ключ таскать через еще один сервер?

faraday 13.12.2016 17:42

strangedk, картинки можно получать без ключа, обычный гет запрос пайпать.
garymar, пробуй грузить в таких случаях через http, обычно срабатывает

strangedk 13.12.2016 22:09

Цитата:

Сообщение от faraday (Сообщение 1197907)
strangedk, картинки можно получать без ключа, обычный гет запрос пайпать.
garymar, пробуй грузить в таких случаях через http, обычно срабатывает

Спасибо за наводку. Но насчет второго - ВК вроде всех пугает, что «скоро» будет поддерживать исключительно HTTPS.

faraday 13.12.2016 23:33

таким могут пугать только браузеры) В вк довольно часто игроки грузят игру именно по http, и приходится вручную заменять протокол у аватарок чтоб грузились норм.
еще вариант раньше был грузить как binary картинки и загружать в loader чистые байты, но как щас хз)

undefined 13.12.2016 23:48

могу ошибаться, но вроде грузить и показывать можно откуда угодно.Проблемы начинаются когда пытаешься достучаться до битмапы изображения.Поэтому если грузить обычным лодером - проблем быть не должно(В смысле кроссдоменник в этом случае не нужен).

caseyryan 14.12.2016 05:47

Цитата:

(В смысле кроссдоменник в этом случае не нужен).
Нужен, это ничего не меняет.
Цитата:

garymar, пробуй грузить в таких случаях через http, обычно срабатывает
мм.. как это может помочь ситуации? Если игра висит в айфрейме, то есть находится на другом домене, загрузка через http так же потребует наличие crossdomain.xml. Нет разницы грузить ее по безопасному соединению или открытому
Цитата:

@caseyryan, ты имеешь в виду делать запрос на свой сервер с правильным crossdomain, а он уже обращается на сервер VK за аватарками?
Да, именно так. Можно просто слать своему серверу ссылку на картинку, а оттуда перенаправлять ее обратно приложению например так
PHP код:

echo file_get_contents($url); 

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

strangedk 14.12.2016 13:18

Цитата:

Сообщение от faraday (Сообщение 1197921)
таким могут пугать только браузеры) В вк довольно часто игроки грузят игру именно по http, и приходится вручную заменять протокол у аватарок чтоб грузились норм.
еще вариант раньше был грузить как binary картинки и загружать в loader чистые байты, но как щас хз)

Многие и API переводят. Игры в том числе.
http://image.prntscr.com/image/abce5...16636ac3f1.png

undefined 14.12.2016 14:10

Вложений: 1
Цитата:

Нужен, это ничего не меняет.
Точно точно?
Код AS3:

package
{
        import flash.display.Bitmap;
        import flash.display.Loader;
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.net.URLRequest;
        import flash.text.TextField;
 
        /**
        * ...
        * @author
        */

        public class Main extends Sprite
        {
                private var loader:Loader;
                private var tf:TextField;
                public function Main()
                {
                        if (stage) init();
                        else addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                private function init(e:Event = null):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        // entry point
                        loader = new Loader();
                        tf = new TextField();
                        tf.x = tf.y = 320;
                        tf.width = tf.height = 300;
                        loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
                        loader.load(new URLRequest("https://dl.dropboxusercontent.com/u/68778662/icon.jpg"));
                }
                private function onComplete(e:Event):void
                {
                        loader.removeEventListener(Event.COMPLETE, onComplete);
                        addChild(loader);
                        addChild(tf);
                        try {
                                var bmp:Bitmap = loader.contentLoaderInfo.content as Bitmap;
                                var str:String = bmp.bitmapData.width + "x" +bmp.bitmapData.height;
                                tf.text = str;
                        } catch (e:SecurityError) {
                                tf.text = "error:" + e.message;
                        }
                }
        }       
}

LoaderTest.swf   (1.4 Кб)


Часовой пояс GMT +4, время: 16:21.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.