Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   Еще немного про постинг на стену (http://www.flasher.ru/forum/showthread.php?t=144812)

alexus_28 21.09.2010 22:15

Еще немного про постинг на стену
 
Всем привет! Не получается запостить на стену. Остановился на последнем этапе.

Зависает на вызове: wrapper.external.saveWallPost(cpost_hash);

привожу код:
Код AS3:

//получаем адрес для загрузки фотографий
public function getPhotoUploadServer(postedMovieClip:MovieClip)
        {
            trace("getPhotoUploadServer");
            dataprovider.setup({onError:cError});
            dataprovider.request("wall.getPhotoUploadServer",{onComplete:cComplete});
 
            postedMC = postedMovieClip;
            function cComplete(result:*)
            {
                UploadURL = result.upload_url;
                upLoadPhoto();
            }
            function cError(error)
            {
                trace("Error");
            }
        }
 
..рисуем нужный муви клип и передаем его на сервер
function upLoadPhoto():void
                {
                        trace("upLoadPhoto");
                        var bmd:BitmapData = new BitmapData(800,600,false);//--создаем bitmapdata
                        bmd.draw(postedMC);
                        App.addChild(postedMC);
                        //--рисуем в битмапе интересующий мувиклип;
 
                        var byteArrayScr:ByteArray = new JPGEncoder(85).encode(bmd);
 
                        var mll:MultipartURLLoader = new MultipartURLLoader();
                        mll.addEventListener(Event.COMPLETE, onUploadCompleteThroughAlarm);
                        mll.addFile(byteArrayScr, "photo.jpg", "photo", 'image/jpg');
                        mll.load(UploadURL);
 
                        function onUploadCompleteThroughAlarm(event:Event):void
                        {
                                savePhotos(parseServerAck(event.currentTarget.loader.data as String));
                        }
                }
public function parseServerAck(serverAck:String):*
                {
                        var result:* = new Object  ;
                        for each (var pair:String in serverAck.split(/\s*[{},]\s*/))
                        {
                                var tmp:Array = pair.split(/\s*[:"]\s*/);
                                if (  (tmp[1] == "server")
                                || (tmp[1] == "photo")
                                || (tmp[1] == "aid")
                                || (tmp[1] == "hash"))
                                {
                                        result[tmp[1]] = tmp[4];
                                }
                        }
                        return result;
                }
 
nction savePhotos(serverAck:*):void
                {
                        trace("savePhotos");
                        var variables:URLVariables = new URLVariables();
                        for(var key1:String in serverAck);
                        {
                                variables[key1] = serverAck[key1];
                        }
                        savePost(serverAck.server, serverAck.photo, serverAck.hash);
                        //savePost(variables.server, variables.photo, variables.hash);
                }
..сохраняем на сервере контакта
public function savePost(cserver:*,cphoto:*,chash:*)
                {
                        trace("savePost");
                        dataprovider.setup({onError:cError});
                        dataprovider.request("wall.savePost",{params:{wall_id:flashVars.viewer_id,photo:cphoto,server:cserver,hash:chash},onComplete:cComplete});
 
                        function cComplete(result:*)
                        {
                                trace(result.post_hash);
                                trace(result.photo_src);
                                saveWallPost(result.post_hash);
                        }
                        function cError(error)
                        {
                                App.activeCounterCurency.text = String(error);
                                trace(error);
                        }
                }
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//сохраняем на стене!!!!!!Вот здесь и проблема зависает на этом вызове
                public function saveWallPost(cpost_hash:*):void
                {
                        App.wrapper.external.saveWallPost(cpost_hash);
                }

Заранее благодарен!

GBee 22.09.2010 09:10

Лопни мои глаза. Откуда вы знаете, что тут зависает? Локального-то враппера нет. Да и не используйте враппер.

etc 22.09.2010 16:31

А вся проблема в том, что кривые программеры пишут кривые либы и выкладывают в кривой гуглокод, куда приходят другие кривые программисты и кривость растет в геометрической прогрессии, побочным эффектом которой являются вот такие вот темы на флешер.ру.

alexus_28 22.09.2010 17:04

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

А как без wrapper запостить на стену? все ругают этот враппер, если бы знать как без него то с радостью бы не использовал бы:)

Добавлено через 3 минуты
Цитата:

Сообщение от etc (Сообщение 937835)
А вся проблема в том, что кривые программеры пишут кривые либы и выкладывают в кривой гуглокод, куда приходят другие кривые программисты и кривость растет в геометрической прогрессии, побочным эффектом которой являются вот такие вот темы на флешер.ру.

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

А на счет кривых примеров:) Я бы не использовал кривые, если бы крутых примеров было бы больше:)

Ладно, разберусь со временем и все будет ОК :victory:

Добавлено через 4 минуты
Цитата:

Сообщение от GBee (Сообщение 937706)
Лопни мои глаза. Откуда вы знаете, что тут зависает? Локального-то враппера нет. Да и не используйте враппер.

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

А как без wrapper запостить на стену? все ругают этот враппер, если бы знать как без него то с радостью бы не использовал бы:moder:

etc 22.09.2010 17:13

alexus_28, у посредника есть такое же событие и методы.

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

alexus_28 22.09.2010 17:31

Цитата:

Сообщение от etc (Сообщение 937854)
alexus_28, у посредника есть такое же событие и методы.

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

Спасибо за ответ, просто в контактовской документации не написано про этот метод в посреднике. saveWallPost , вот я и подумал что там его нет, и для постинга на стену необходим wrapper.

Ну а качество зависит от множества вещей:
1) Анализ предметной области
2) Составление ТЗ
3) Разработка архитектуры (структуры) приложения
4) Кодирование
5) Тестирование
6) Внедрение
7) Сопровождение

Это только основное:) И непосредственно сам процесс кодирования занимает только небольшую часть этого Процесса:)

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

GBee 22.09.2010 18:11

Цитата:

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

Цитата:

просто в контактовской документации не написано про этот метод в посреднике. saveWallPost , вот я и подумал что там его нет, и для постинга на стену необходим wrapper.
Да посредник хило описан, смотрите, что умеет враппер и юзайте посредником. Вроде он все умеет, кроме изменения размеров, хотя могу ошибаться.

alexus_28 22.09.2010 19:17

Цитата:

Сообщение от GBee (Сообщение 937885)
Да ладно вам, все когда-то начинали, мой первый фриланс проект был на флексе втором, и я его тогда только начал изучать. Недавно его открывал, думаю вот мудак какой-то писал :о)) И проект удачно сдал, и даже немного поддерживал потом.
Правда тогда цель была больше научиться, чем заработать.


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

Спасибо за инфу и поддержку:) вы вселили в меня уверенность :victory:

Добавлено через 2 часа 40 минут
Переделал под apiConection
И:) Возникла еще одна проблема:

При тестировании на локальной выдало ошибку при обращении к апи.
Как было показано в примере нужно вставить:
Код AS3:

if (!flashVars.api_id) {
  // -- For local testing enter you test-code here:
  flashVars['api_id'] = 1888171;
  flashVars['viewer_id'] = 66748;
  flashVars['sid'] = "7e22c25d7fece88f2316553937ff24f43e1073ca28e8b4302e65db35fa";
  flashVars['secret'] = "6113n3e4g3";
  // -- //
}

Разобрался со всем, кроме "sid":)

В итоге вернуло ошибку:
{"error":{"error_code":2,"error_msg":"Application is disabled. Enable your application or use test mode","request_params":[{"key":"method","value":"isAppUser"},{"key":"api_id","value":"1928281"},{"key":"sid","value":""},{"key":"format","value":"JSON"},{"key":"sig","value": "f1c30de6ce3ed69e775bacbe94344a98"},{"key":"v","value":"3.0"}]}}

Из чего выдно что:
{"key":"sid","value":""},

но ошибка:
Application is disabled. Enable your application or use test mode
Получается что проблема в том что выключен режим test_mode.

Вопрос:
1) Где взять sid
2) как установить test_mode при использовании посредника?

Добавлено через 5 часов 49 минут
Еще один успех:)
Про test_mode разобрался!
просто при вызове метода добавил в параметр test_mode:
Код AS3:

            VK = new APIConnection(flashVars);
 
            var cparams:Object = new Object();
            cparams.test_mode = 1;
 
            VK.api("isAppUser",cparams,options.onComplete,cError);

Осталось только найти где взять SID! Ребята! Помогите пожалуйста!

GBee 23.09.2010 08:19

Запустите ваше приложение во ВКонтакте, откройте исходник страницы, найдите сид


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

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