Библиотека для работы с API Вконакта серверной части приложения - это всего лишь хелпер, использующий urllib (или что-нибудь другое) и парсер xml/json. Изобретать свои велосипед не хочется, возьмем уже написанный код. Вот что сходу нагуглилось:
* - django модуль, который напрямую авторизируется логином/паролем пользователя, нам не подходит, но пример можно посмотреть ниже.
vkontakte
>>> import vkontakte
>>> vk = vkontakte.API('my_api_id', 'my_api_secret')
>>> print vk.getServerTime()
1282689362
>>> profiles = vk.getProfiles(uids='1,2', fields='education')
>>> pavel = profiles[0]
>>> print pavel['last_name'], pavel['university_name']
Дуров СПбГУ
>>> # alternative syntax
>>> profiles = vk.get('getProfiles', uids='1,2', fields='education')
>>> pavel = profiles[0]
>>> print pavel['last_name'], pavel['university_name']
Дуров СПбГУ
>>> # custom timeout example (default timeout = 1s)
>>> vk = vkontakte.API('my_api_id', 'my_api_secret', timeout=5)
>>> print vk.getServerTime()
1282689362
>>> # syntax sugar for 'secure.*' methods
>>> print vk.secure.getSMSHistory()
Noneapivk-py
import apivk_secure as secure
from apivk import *
def on_success(obj):
print 'on_success ', obj
def on_error(error_code, error_msg, request_params):
print 'error ', error_code, ': ', error_msg
q = VKQueue('1', 'apisecuresecret', 5, 1)
#async request
q.add(secure.saveAppStatus(uid='1', status='Hi, Pavel!'), on_success, on_error)
#sync request
event = q.add(secure.saveAppStatus(uid='1', status='Hello world!'))
try:
response = event.wait()
print 'response:', response
except VKError, e:
print 'VKError %s: %s'%(e.code, e.msg)
vpython
def index(request):
leecher = VkontakteLeecher("ad3002@gmail.com", "toteato", "d:/vk/")
pdata = leecher.person_dict
news = leecher.news()
context = { 'page_title' : 'Мой вконтакте',
'fullname' : str(pdata['name'] + " " + pdata['surname']),
'nickname' : pdata['nickname'],
'idnum' : news[1][3],
}
return render_to_response('index.html',context_instance=\
RequestContext(request,context))
Сразу хочется сказать, что библиотеки не сложные, даже судя по количеству кода, оба не превышают 300 строк. Оба передают данные с помощью json.
Apivk-py побольше, т.к. содержит вариант асинхронных запросов. Использует urllib2 и threading, так же есть тесты.
Преимущество vkontakte (urllib) - это то что его пакет есть на PyPI, что удобно для установки, хотя оба проекта содержат всего по два файла.
0 comments:
Post a Comment