Форум программистов, компьютерный форум, киберфорум
Python: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
383 / 23 / 2
Регистрация: 12.06.2021
Сообщений: 211
Записей в блоге: 2

Как получить token вконтакте, через python?

12.07.2023, 22:30. Показов 4901. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На php я уже сделала пример авторизации VK все работает. Теперь нужно тоже самое сделать и на python. Весь смысл авторизации это получить token. Большинство примеров в интернете показывают как автор вручную получает token, а потом добавляет его в код, мне это не подходит. Нужно программно его получить.Для начало я собиралась получить code, чтобы потом его использовать для получения токена. Начала уже есть.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
print('Content-Type: text/html; charset=utf-8\n')
 
import requests
from bs4 import BeautifulSoup 
 
url = "https://oauth.vk.com/authorize"
#r = requests.get(url)
app_secret = "<SECRET APP>"
app_id = "<APP ID>"
redirect_uri = "<REDIRECT URi>"
oauth = requests.get(url, params = {'client_id' : str(app_id), 
                                    'redirect_uri' : redirect_uri,
                                    'display' : 'page',
                                    'scope' : ['friends,offline'], # offline option makes the token permanent
                                     'response_type' : 'code',
                                     'v' : 5.101})
 
 
print(oauth.text)
Чтобы узнать какой текст находится в переменной oauth я использовала text и получила html код с формой, что-то вроде (скриншот ниже). На скриншоте я уже авторизована и мне предлагают продолжить под своим именем, а из html кода я поняла что мне требуется ввести логин и пароль заново и тут появилась проблемка я не могу это сделать(указать логин и пароль), потому что я использую terminal(ms-dos), тут просто некуда вводить логин и пароль. Помогите разобраться, как получить токен ВК?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.07.2023, 22:30
Ответы с готовыми решениями:

OAuth2 в google получить token через акаунт менеджер
Используя пример http://findevelop.blogspot.ru/2012/05/oauth2-android.html получаю токен с менеджера акаунтов для работы с google spedseeps...

Пройти аутентификацию через Token, не получается получить frob
Товарищи , кто использовал/использует Api Odesk? не могу пройти аутенфикацию через токены ( Authentication using Token), затык на...

OAuth 2.0 получение access token и refresh token через JavaScript
Здраствуйте! Можете подсказать, реализуема ли затея по отправки ajax запроса на сервер для получения токенов или нужна какая-то...

5
383 / 23 / 2
Регистрация: 12.06.2021
Сообщений: 211
Записей в блоге: 2
15.07.2023, 22:52  [ТС]
Вот так работает, получение токена.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
 
print('Content-Type: text/html; charset=utf-8\n')
 
import json
import requests
import time
import vk_api
 
 
 
 
login = "<EMAIL ПОЧТЫ ВК"
password = "<ПАРОЛЬ>"
def get_token(login,password):
  VK = vk_api.VkApi(
                login=login,
                password=password,
                app_id=2685278,
                scope=4096,
  )
 
  VK.auth()
  vk = VK.get_api()
  access_token = 0
 
  
  try:
       User = VK.users.get()
  except:
       print("Error")
  else:
       print(f"\nHello {User[0]['first_name']}")
  
 
  with open('vk_config.v2.json', 'r') as data_file:
        data = json.load(data_file)
  for xxx in data[login]['token'].keys():
        for yyy in data[login]['token'][xxx].keys():
            access_token = data[login]['token'][xxx][yyy]['access_token']
  return access_token
  
 
 
access_token = get_token(login,password)
 
print(access_token)
Только меня волнует этот блок:
Python
1
2
3
4
5
6
  try:
       User = VK.users.get()
  except:
       print("Error")
  else:
       print(f"\nHello {User[0]['first_name']}")
Почему, выдает ошибку "Error"? Через print я проверила данные пользователя удалось получить, т.е если данные доступны, ошибки не должно быть. В чем может быть проблема?
0
 Аватар для kazak
3604 / 2744 / 356
Регистрация: 11.03.2009
Сообщений: 6,307
16.07.2023, 11:34
Цитата Сообщение от Olga28 Посмотреть сообщение
Почему, выдает ошибку "Error"?
Цитата Сообщение от Olga28 Посмотреть сообщение
Python
1
2
except:
 print("Error")
Python
1
2
3
4
import traceback
....
except Exception as e:
    traceback.print_exception(e)
0
383 / 23 / 2
Регистрация: 12.06.2021
Сообщений: 211
Записей в блоге: 2
17.07.2023, 16:56  [ТС]
Я не знаю что еще сделать использовала конструкции traceback. Выводит ошибку:
AttributeError: 'VkApi' object has no attribute 'users'
Типа нет атрибутов, стала смотреть в интернете какие аттрибуты включить.
Все уже перепробывала. Все равно ошибку выводит.
Python
1
User = VK.users.get(user_ids=1, fields=['photo_max', 'city', 'country'])
Полный код ошибки:
Traceback (most recent call last):
File "python1/main.py", line 35, in get_token
User = VK.users.get(user_ids=1, fields=['photo_max', 'city', 'country'])
AttributeError: 'VkApi' object has no attribute 'users'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "python1/main.py", line 53, in <module>
access_token = get_token("<USERNAME>","<PASSWORD>")
File "python1/main.py", line 37, in get_token
traceback.print_exception(e)
TypeError: print_exception() missing 2 required positional arguments: 'value' and 'tb'
0
213 / 109 / 46
Регистрация: 12.12.2016
Сообщений: 399
19.07.2023, 08:07
Цитата Сообщение от Olga28 Посмотреть сообщение
Все уже перепробывала. Все равно ошибку выводит.
User = VK.users.get(user_ids=1, fields=['photo_max', 'city', 'country'])
в коде выше:
Code
1
vk = VK.get_api()
вероятно должно быть так:
User = vk.users.get(user_ids=1, fields=['photo_max', 'city', 'country'])
переименуй переменную vk в api, возможно не потеряешься)
Code
1
api = VK.get_api()
0
383 / 23 / 2
Регистрация: 12.06.2021
Сообщений: 211
Записей в блоге: 2
19.07.2023, 18:27  [ТС]
Спасибо за помощь, работает.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
#https://pythonforbeginers.mkhitaryan.pw/2016/10/vk-api.html
print('Content-Type: text/html; charset=utf-8\n')
 
import json
import requests
import time
import vk_api
import traceback
 
group_list =  ['datacampus', '185023286', 'data_mining_in_action']
 
token = '<TOKEN>'
##https://vk.com/wall-54530371_291612?lang=en
login = "<EMAIL ПОЧТЫ ВК"
password = "<ПАРОЛЬ>"
def get_token(login,password):
  VK = vk_api.VkApi(
                login=login,
                password=password,
                app_id=2685278,
                scope=4096,
  )
 
  VK.auth()
  api = VK.get_api()
  access_token = 0
  vk_Id = "320645863"
  
  
  
 
  try:
       User = api.users.get(user_ids=1, fields=['photo_max', 'city', 'country'])
  except Exception as e:
       traceback.print_exception(e)
  #except:
     #  print("Error")
  else:
       print(f"\nHello {User[0]['first_name']}")
  
  #print(User)
  with open('vk_config.v2.json', 'r') as data_file:
        data = json.load(data_file)
  for xxx in data[login]['token'].keys():
        for yyy in data[login]['token'][xxx].keys():
            access_token = data[login]['token'][xxx][yyy]['access_token']
  return access_token
  
 # print(f"Access_Token: {access_token}")
 
access_token = get_token("<EMAIL ПОЧТЫ ВК","<ПАРОЛЬ>")
 
print(access_token)
 
 
#print("test")
#print(oauth.text)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.07.2023, 18:27
Помогаю со студенческими работами здесь

Как получить значение атрибута HTML тега через bs4 для Python?
У меня есть вот такая функция, которая получает название фильма, ищет этот фильм на КиноПоиске и возвращает его название на КП. Но в моих...

Как получить access token instagram?
Здравствуйте, уважаемые форумчане! Возникла проблема - не могу зарегистрироваться и получить access token у инстаграмма. Просто не...

Gmail OAuth 2.0 как получить access token?
Юзая cURL для удобства понимая происходящего у меня есть clientID и clientSecret не могу понять как быть далее? что и куда отправить...

Как получить Yandex OAuth get token в ROR?
На данный момент написал вот такой код. class Yandex_API protected def self.application_id return &quot;&quot; end ...

Как получить cookie от вконтакте?
Для работы скрипта необходимы cookie от вконтакте, как их получить?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru