Форум 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=142452)

catcat 21.07.2010 18:16

Передача сообщения для публикации на стену
 
Как можно передать сообщение, содержащее русские символы и пробелы в параметр запроса? Есть для этого во Flash какие-нибудь функции или какие сторонние библиотеки?

mikhailk 21.07.2010 22:14

encodeURI

catcat 23.07.2010 15:42

Допустим у меня есть переменная userText = "абракадабра". Если пользоваться encodeURI, то на стене появляется запись со знаками процента и т.д., т.е. явно не то, что нужно, а если без нее, то что-то типа абракадабра. Может я не так как-то encodeURI использую? Я кодирую userText в подписи и в URLVariables.

mikhailk 23.07.2010 15:48

Вот кусок рабочего кода

Код AS3:

                /**************************************************************************/
                /*    Публикация записи на стену                                          */
                /**************************************************************************/
                public function writeMessageToWall(requestData){
                        var signatureForMD5:String = wrapper.application.parameters.viewer_id
                                                        + "api_id=" + wrapper.application.parameters.api_id
                                                        + "hash=" + requestData.hash
                                                        + "message=" + requestData.messageText
                                                        + "method=wall.savePost"
                                                        + "photo=" + requestData.photo
                                                        + "photo_id=" + requestData.photoID
                                                        + "server=" + requestData.server
                                                        + "test_mode=" + testMode
                                                        + "v=2.0"
                                                        + "wall_id=" + requestData.userID
                                                        + GlobalParameters.appCode;
                        var signatureMD5:String = convertorMD5.encrypt(signatureForMD5);
                        var requestString:String = wrapper.application.parameters.api_url
                                                        + "?api_id=" + wrapper.application.parameters.api_id
                                                        + "&hash=" + requestData.hash
                                                        + "&message=" + encodeURI(requestData.messageText)
                                                        + "&method=wall.savePost"
                                                        + "&photo=" + requestData.photo
                                                        + "&photo_id=" + requestData.photoID
                                                        + "&server=" + requestData.server
                                                        + "&sig=" + signatureMD5
                                                        + "&test_mode="+testMode
                                                        + "&v=2.0"
                                                        + "&wall_id=" + requestData.userID
                                                        ;
                        connectToURL(requestString,"writeMessageToWall");
                }


catcat 23.07.2010 16:00

У вас в сигнатуре requestData.messageText не кодируется, а в параметрах запроса кодируется. У меня в таком случае запрос не выполняется даже. Мне нужно и там и там кодировать. Я, правда, использую URLVariables:
Код AS3:

var sig = MD5.hash(viewer_id+"api_id="+api_id+"hash="+hash+"message="+msg+"method=wall.savePostphoto="+photo+"post_id="+post_id+"server="+server+"v="+v+"wall_id="+String(wall_id)+secret);
 
                        var variables:URLVariables = new URLVariables();
                        variables.api_id = api_id;
                        variables.v = v;
                        variables.wall_id = wall_id;
                        variables.server  = server;
                        variables.photo  = photo;
                        variables.post_id = post_id;
                        variables.hash    = hash;
                        variables.message = msg;
                        variables.method = "wall.savePost";
                        variables.sig = sig;
 
                        sendAndLoadData(variables, onComplete);

Не знаю даже в чем проблема :(

etc 23.07.2010 16:01

Нет, ну почему никто не догадывался сделать функцию сортировки полей по алфавиту и автоматическому вычислению сигнатуры?

catcat 23.07.2010 16:06

Цитата:

Нет, ну почему никто не догадывался сделать функцию сортировки полей по алфавиту и автоматическому вычислению сигнатуры?
Сейчас вот приложение сделаю и сделаю такую функцию, да и вообще библиотеку для вконтактовских методов наверное.
Ну а по вопросу? Что можно сделать?

etc 23.07.2010 16:14

Не знаю, я передаю как есть и всё работает. Т. е. я ничего специально не делал для того, чтобы это работало.

Bgg 23.07.2010 16:22

Цитата:

Сообщение от etc (Сообщение 924433)
Нет, ну почему никто не догадывался сделать функцию сортировки полей по алфавиту и автоматическому вычислению сигнатуры?

Мне в свое время было лень. Казалось что руками быстрее перечислить параметры запроса.

catcat 23.07.2010 16:24

Самое интересное -- в окне подтверждения публикации русский текст правильно отображается, а на самой стене совсем не то :(


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

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