Pull to refresh
51
0
Alexander Russkiy @Kolonist

Разработчик

Send message
Я на будущее уже запланировал. Постепенно буду расширять функционал приложения, доводя до функционала самого Твиттера, естественно, со спецификой контакта.
Мне нужно чтобы последнее сообщение из твитера стало статусом вконтакте.

Вот именно это я и сделал.
Сделал через API. Не думаю, что заблокируют, смысл? Им же наоборот выгодны популярные приложения.

И про популярность Вы тоже, ИМХО, преувеличили. У меня уже давно приложение для Твиттера готово, но оно почти никому не нужно. А я еще удивлялся, почему до меня такое никто не сделал. Видимо, просто не та аудитория…
Я сделал: vkontakte.ru/app1687950
Данные можете не доверять — для синхронизации статуса и отображения твитов на странице пароль не нужен.
Как только в API будет возможность менять статус, так сразу же и будет реализована. Только не разработчиками контакта (дождешься от них...), а разработчиками приложения.
Вообще, уже давно известно соотношение активности — 10:100:1000.
Это значит, что на каждую 1000 пользователей, приходится 100 пользователей, готовых иногда участвовать в опросах и изредка оставлять какие-нибудь комментарии, и лишь 10 пользователей, которые будут активно комментировать, создавать темы, писать статьи.

Принуждать пассивную массу к проявлению активности бессмысленно и даже вредно — они просто уйдут с сайта и никогда туда не вернутся. Да и нужна ли вам куча некреативных, оставленных для галочки комментариев...?
Не так страшен сам Pascal, как то, что преподается у нас именно TurboPascal, а не, скажем, FreePascal или Delphi.

Современный Паскаль вполне себе нормальный язык, поддерживающий ООП, интерфейсы, динамические строки и массивы, шаблоны (тип Generic). Однако, в универах преподавателям, действительно, зачастую лень посмотреть, что со времен Turbo Pascal для DOS или Borland Pascal 7.0 для Windows что-то изменилось. Преподаватели часто даже не подозревают, что есть кроссплатформенный, современный, пригодный для решения реальных задач, FreePascal. Максимум к чему приходят преподаватели — это Delphi 7, да и то, на старших курсах, да и то, не к изучению языка, а к рисованию форм в визуальном редакторе с созданием обработчиков в стиле Turbo Pascal'я.

Вспоминая себя, в Финляндии я изучал Java. Это, конечно, был курс для тех, кто уже умел программировать, но не суть. Преподаватель не преподавал одно и то же из года в год, он, во-первых, сам был практикующим программистом Нокии, а, во-вторых, он к каждому занятию готовился как к первому — рылся в Инете, изучал все новости, просматривал блоги на предмет чего-нибудь нового и интересного. Он своевременно обновлял версии компилятора, ставил различные IDE, учил пользоваться автодокументированием. Вполне нормальным было прямо во время занятий скачать с интернета какой-нибудь пример и сразу дать его студентам, которые, заодно, и учились искать ошибки в чужом коде (не всегда же примеры из интернета работают, как ожидается).

И задачи у нас были не типичные аля решение квадратного уравнения, а какие-то более интересные. Мы писали TCP- и UDP-серверные приложения и клиенты, работали с Bluetooth'ом и GPS-навигаторами, учились динамическому созданию элементов интерфейса, и т.д., и т.п.

P.S. Я так жалел, что после всего лишь одного семестра мне нужно опять возвращаться в свой родной ВУЗ, где на пятом курсе (!) опять все тот же Turbo Pascal для DOS и PHP на уровне echo «var1 = $var1»…
Вы неверно работаете со скриптом. Дело в том, что все манипуляции нужно проводить внутри callback-функции, выполняющейся при успешной инициализации. Т.е., в данном случае:

var api = new vk_api(
    '...',
    function() {
        api.params.viewer_id = <?php echo $_GET['viewer_id']; ?>;
        api.params.api_id = 123;
        api.call('isAppUser', function(data) {alert(123);});
    }
);


Более того, устанавливать api.params.* через PHP — совершенно бессмысленно. Все эти параметры устанавливаются скриптом автоматически! Так что, если все далать еправильно, то Ваш скрипт должен быть таким:

var api = new vk_api(
    '...',
    function() {
        api.call('isAppUser', function(data) {alert(123);});
    }
);

А это точно кроссбраузерно? Потому как сейчас я даже с айфона могу загружать приложение своё.

У меня нет IE, так что проверить мне сложнее. Но вообще, как бы, да. Квадратные скобки не являются частью стандарта ECMAscript, и не обязаны поддерживаться всеми браузерами (каюсь, не знал). А метод charAt() должен поддерживаться всем. Так или иначе, надо проверять.
Спасибо за замечание.

Поначалу, честно говоря, был озадачен. Полез в доки, естественно — оказалось, точно:
Treating the string as an array is not part of ECMAscript; it's a Javascript feature (and not supported in all browsers)


Единственное, чем писать api_secret.substring(i,i+1), наверное, проще будет писать api_secret.charAt(i)
Хорошая новость. Ждем.
Кстати, библиотеку вполне можно портировать на Actionscript.
Я просто не интересовался, возможно, там уже что-то подобное есть. Все же, Flash-приложения доступны там уже давным давно.
А мне объясните — что толкает вас (разработчики) на переход с одного единого файла (swf) на сотню (html, css, js, jpg...)?

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

Про параметр callback нигде в доках vkontakte Iframe API не написано.

О, да. По началу, это меня выбило из колеи. Обнаружил чисто случайно, когда экспериментировал с jQuery.
Да, это повысит безопасность приложения — секретный ключ больше не будет фигурировать в клиентской части ни в каком виде. И если это критично, то можно так и делать.

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

Все финансовые операции проводятся через механизм защищенного взаимодействия, в котором участвует совершенно другой ключ, не фигурирующий на стороне клиента. Кроме того, приложение выполняется в контексте определенного пользователя, так что навредить другому пользователю, злоумышленник не сможет — только себе. Приложению злоумышленник тоже никак не навредит, потому что от имени администратора он все равно не сможет никакие API-функции выполнить.

В общем, красть секретный ключ и подделывать подпись совершенно бесполезно. И ничего страшного, даже если этот ключ будет в тексте в открытом виде. Вообще, из Flash-приложений этот ключ тоже извлекается, при желании.
12 ...
44

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity

Specialization

Backend Developer
Middle
C#
Multiple thread
Object-oriented design
Software development
SQL
ASP.Net
PostgreSQL
Linux
MongoDB