Как стать автором
Обновить

Я давно хотел открыть свою страницу на vkontakte.ru

Время на прочтение3 мин
Количество просмотров2.4K
и наконец я смогу это сделать! теоретически…

итак, основная идея — использовать данные моего профайла на сайте vkontakte.ru при формировании моей домашней страницы (она естественно не требует никакой аутентификации и видна всему интернету — в это и заключается смысл «открывания профайла»). сделать это я планирую используя API, который недавно открыли для разработки социальных сетей и клиентских приложений на основе vkontakte.ru (userapi.com).

зачем это мне? всё просто — у меня пока нет блога и домашней странички тоже нет, но иногда я пишу заметки vkontakte.ru и хочу шарить их ещё и с теми кто предпочитает блоги и xml-ленты (я и сам предпочитаю гугл reader) + с теми, кто ещё не знает меня и возможно и никогда не узнает, если гугл и яндес не будут знать… + в моём профиле достаточно информации, которую я не хочу скрывать, но и копипастить на свой сайт при изменении не хочу

+меня можно будет комментить с openid и вообще доздраствует open social :)

UPD
я зарегистрировал свой «проект» на userapi.com и получил id проекта — при авторизации необходимо указывать это идентификатор — это сделано для того чтобы я имел возможность авторизоваться используя только свой номер на сайте (он указывается при регистрации проекта).

дальше я попробовал авторизоваться как написано в документации и ввёл в строку браузера:
login.userapi.com/auth?login=force&site=[MY_PROJECT_ID]&email=[MY_EMAIL]&pass=[MY_PASSWORD]
сервер перенаправил меня сайт моего проекта #sid=сгенерированный идентификатор сессии
«странный механизм» — подумал я — «но работает и какая разница как я получу этот идентификатор»

затем я попробовал получить доступ к данны (из примеров в документации) — передаёшь идентификатор сессии и другие параметры запроса, а в ответ получаешь данные — работает :)

дальше я написал маленький код, чтобы чуть-чуть приблизиться к своей задумке:
from httplib import HTTPConnection
from urllib import urlencode
import re

site = [MY_PROJECT_ID]
email = [MY_EMAIL]
password = [MY_PASSWORD]

id = 389606

auth_conn = HTTPConnection("login.userapi.com")
auth_conn.request("GET", "/auth?"+urlencode({"login": "force",
"site":site,
"email": email,
"pass":password,}))
auth_resp = auth_conn.getresponse()
location = auth_resp.getheader("location")
auth_conn.close()

sid = re.compile("\w+$").search(location).group()

conn = HTTPConnection("userapi.com")
conn.request("GET", "/data?"+urlencode({"act": "activity",
"from": 0,
"to": 10,
"id": id,
"sid": sid,}))
resp = conn.getresponse()
data = resp.read()

print data

conn.close()

всё заработало и я решил перенести это дело на хостинг, чтобы быстренько сделать свой сайт на django :) и что я вижу? не могу подключиться к серверу!!! я смотрю в код, пробую wget, потом lynx — тоже самое! проверяю соединение с другими хостами — всё работает, копипую скрипт на другой хостинг — опять не работает :) прошу исполнить мой скрипт друга — работает… и тут я понимаю хостеры тупа забанены!!! зачем?

смотрим в документацию и размышляем… api написан с учетом того, чтобы работать через AJAX (в большинства запросов передаётся имя колбэка и «странная» авторизация сделана по тем же причинам). хостеров видимо забанели чтобы не возможности напрямую «сливать» данные и как защиту от нарушений пользовательского соглашения, предполагая что разработка проектов сторонних будет вестись таким образом что запросы к userapi.com будут идти напрямую от пользователя минуя сервер проекта т.е. сторонний проект по суте предоставлял бы только интерфейс…

по-моему, очень достаточно дурацкая защита… никто не мешает воровать пользовательские данные, а главное пароли с помощью того же AJAX (только вставлять код-воришку не всегда, чтобы втереться в доверие)… почему было не сделать авторизацию так как она реализована в openid?! странно…

в итоге, думаю, не проблема найти «чистенький» хостинг, но может это была дурацкая идея? и vkontakte.ru не мой выбор?
Теги:
Хабы:
Всего голосов 51: ↑8 и ↓43-35
Комментарии7

Публикации

Истории

Ближайшие события