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

etc 23.07.2010 16:24

Гм, это странно, написать одну единственную функцию и не париться всяко быстрее.

udaaff 23.07.2010 16:26

Цитата:

Казалось что руками быстрее перечислить параметры запроса.
Там функция та несчастная в несколько строк получается.
Код AS3:

//
//  Copyright 2009 Vitali Sosnovski
//
//  NOTICE: You may distribute this class freely,
//  provided it is not modified in any way (including
//  removing this header or changing the package path).
//
//  Please contact udaaff[at]gmail.com prior to distributing
//  modified versions of this class.
//
////////////////////////////////////////////////////////////////////////////////
 
 
package by.typing.vkontakte.net
{
 
        import com.adobe.crypto.MD5;
 
        import flash.net.URLVariables;
 
        /**
        * Класс предназначен для задания параметров, передаваемых в запросе, а также
        * для генерации сигнатуры на основании этих параметров.
        */

        public dynamic class VkontakteVariables extends URLVariables
        {
 
                //--------------------------------------------------------------------------
                //
                //  Constructor
                //
                //--------------------------------------------------------------------------
 
                /**
                * Создает объект <code>VkontakteVariables</code>.
                *
                */
           
                public function VkontakteVariables()
                {
                        super();
                }
 
 
                //--------------------------------------------------------------------------
                //
                //  Methods
                //
                //--------------------------------------------------------------------------
 
                /**
                * Генерирует сигнатуру на основании заданных переменных. Необходимо вызывать
                * после задания всех необходимых параметров.
                * 
                * @param viewer_id            Id пользователя.
                * @param privateKey    Приватный ключ со страницы редактирования.
                *
                */
           
                public function buildSignature(viewer_id:String, privateKey:String):void
                {
                        // необходимо удалить, иначе неправильно вычислится hash при повторном
                        // вызове
                        delete this['sig'];
 
                        var array:Array = [];
                        for (var field:String in this)
                        {
                                array.push({ name: field, value: this[field] });
                        }
                        array.sortOn("name");
 
                        var sig:String = viewer_id;
                        for each (var o:Object in array)
                        {
                                sig += o.name + "=" + o.value;
                        }
                        sig += privateKey;
 
                        this['sig'] = MD5.hash(sig);
                }
 
        }
 
}


catcat 23.07.2010 16:30

Люди, да что вы все с этими параметрами запроса? :D
Так как проблему с русскими символами решить-то?

udaaff 23.07.2010 16:32

Нет никакой проблемы.

catcat 23.07.2010 16:35

Цитата:

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

Добавлено через 4 минуты
Вот реальный пример сообщения:
сообщение:
Цитата:

я не знаю в чем тут дело
на стене:
Цитата:

я не знаю в чем тут дело
Что это вообще за символы?

mikhailk 23.07.2010 16:42

Цитата:

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

У меня есть и такая и такая реализации.
Когда у тебя используются 4 метода API VK, никакого выигрыша нет.
Ни по объему кода, ни по производительности.
К тому же, эта часть приложения пишется один раз и потом вообще не открывается.

Получается, имхо, программирование ради программирования.
К тому же, с уменьшением наглядности.

etc 23.07.2010 17:17

Цитата:

Сообщение от mikhailk (Сообщение 924451)
У меня есть и такая и такая реализации.
Когда у тебя используются 4 метода API VK, никакого выигрыша нет.
Ни по объему кода, ни по производительности.
К тому же, эта часть приложения пишется один раз и потом вообще не открывается.

Получается, имхо, программирование ради программирования.
К тому же, с уменьшением наглядности.

А я думал, реюзинг кода в почете. Ан нет :quiet:

mikhailk 23.07.2010 17:39

в почете
но не с API ВК. :D
Иногда я вообще не представляю, что за шишки они курили, когда писали некоторые вещи.

Я специально оставил у себя эту часть именно в таком виде.
Чтобы было наглядно и понятно.

Bgg 23.07.2010 17:43

udaaff, да знаю я :)

Astraport 02.11.2010 12:20

Подобная проблема, только по-русски (в message= )даже не хочет публиковать на стену.

Вылезает вконтактовская ошибка "Запись не может быть добавлена на стену по неизвестной причине."

Пробовал encodeURI - не помогает.
По английски все отлично публикуется на стене.


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

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