Задать вопрос

Как реализовывать запросы VK API через Python без токена?

У меня есть это: https://habrahabr.ru/sandbox/84639/
Там запрос делается через vkapi.method, а мне нужно реализовывать token-free запросы без авторизации. Как это сделать? Пытался просто import vk, vk.method - не работает.

Вот что приходится делать сейчас:
import urllib2, json, os.path

DIR = os.path.abspath(os.curdir) + '/'

def get(url, timeout=10):
	try:
		res = urllib2.urlopen(url, timeout=timeout).read()
	except:
		print 'get error'
		res = 0
	return res

def json_convert(string):
	return json.loads(string)

def groups_getById(group_ids=None, group_id=None, fields=None):
	url = 'https://api.vk.com/method/groups.getById?group_ids=' + str(group_ids) + '&group_id=' + str(group_id) + '&fields=' + str(fields)
	return json_convert(get(url))

def groups_getMembers(group_id=None, sort=None, offset=None, count=None, fields=None, filter=None):
	url = 'https://api.vk.com/method/groups.getById?&group_id=' + str(group_id) + '&sort=' + str(sort) + '&offset=' + str(offset) + '&count=' + str(count) + '&fields=' + str(fields) + '&filter=' + str(filter)
	return json_convert(get(url))
  • Вопрос задан
  • 8118 просмотров
Подписаться 4 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillbox
    Профессия Python-разработчик + ИИ
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 5
berezuev
@berezuev
#define TRUE FALSE
Закройте статью, прикрепленную к вопросу, и никогда ее не читайте.
Поставьте библиотеку Requests, и через нее уже делайте запросы.
Список методов есть на vk.com/dev/methods
Ответ написан
@prawn-cake
Привет.
Рекомендую использовать библиотеку https://github.com/prawn-cake/vk-requests
import vk_requests

api = vk_requests.create_api()
api.users.get(user_ids=1)
[{'first_name': 'Pavel', 'last_name': 'Durov', 'id': 1}]


Но вообще лучше использовать token-based аутентификацию, т.к token-free api сильно ограничено
Ответ написан
Комментировать
@FireGM
import urllib
import urllib2, json, os.path

class Api():
    main_url = 'https://api.vk.com/method/'

    def method(self, method, params=None):
        if not params:
            params = {}
        full_url = self.generate_url(method, params)
        return urllib2.urlopen(full_url, timeout=timeout).read()

    def generate_url(self, method, params):
        m = self.main_url + method + "?" +urllib.urlencode(params)
        return m


api = Api()
res = api.method('users.get', {"user_ids" : 1, 'fields': "photo_50,city,verified"})
Ответ написан
Taras_Serevann
@Taras_Serevann
веб-разработчик, автор
Может, стоит попытаться совершать запросы напрямую. Вы ведь осилите работу с сетью и парсинг JSON? Уверен, для этого полно готовых высокоуровенвых решений.
Ответ написан
@ilyakmet Автор вопроса
Нашел вот это: Vk api python без acess_token? Но может есть вариант? Не хочется все функции писать заново на python через urllib.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
DimaTech Ltd Краснодар
от 140 000 до 140 000 ₽