В прошлых двух частях мы сделали авторизацию через ВКонтакте, используя предоставленный ими javascript-виджет и через Майл.ру, используя как JS API, так и через взаимодействие сервер-сервер. Сегодня мы исправим наше упущение относительно ВКонтакте и рассмотрим авторизацию через ВКонтакте без использования клиентских javascript’ов.
В качестве ссылки на авторизацию мы можем использовать любой элемент, например картинку
, оформленную аналогичным образом со ссылкой на авторизацию через mail.ru.
Ссылка у нас будет следующего вида:
api.vkontakte.ru/oauth/authorize?client_id=2445355redirect_uri=_REDIRECT_URI_error_reason=user_deniedaccess_token мы получим так необходимый нам ключ доступа, а $response->user_id — номер пользователя в ВКонтакте. В случае каких-либо ошибок $response->error будет не пустым и в $response->error_description будет краткое описание ошибки.
Выполнять запросы к API можно получая как XML ответы, так JSON, получая содержимое страницы api.vkontakte.ru/method/METHOD_NAME.xml?PARAMETERSaccess_token=ACCESS_TOKEN для второго. Для себя я выбрал JSON раз уж взаимодействие с этой социальной сетью им и начинается.
Авторизация в ВК API (Authorization VK) Delphi
Посмотреть полный список методов API можно на вики-страничке в разделе для разработчиков, их достаточно много, однако нам понадобится лишь getProfiles, возвращающий расширенную информацию о профилях одного или нескольких пользователей.
В массиве $arrResponse мы имеем массив объектов «пользователь», что именно нам будет предоставлено мы указываем в параметре fields (допустимые параметры uid, first_name, last_name, nickname, screen_name, sex, bdate (birthdate), city, country, timezone, photo, photo_medium, photo_big, has_mobile, rate, contacts, education, online, однако некоторые, например uid и first_name приходят и без явного указания). Кроме этого нам доступна гениальная вещь — мы можем указать падеж склонения имени. Этой полезнейшей вещью можно пользоваться на своем сайте, выполняя поиск по имени и получая от Контакта имена в нужном склонении.
Единственное, что нам понадобится из ответа: $response[0]->uid, $response[0]->photo (для аватарки), $response[0]->first_name и $response[0]->last_name, из которых мы склеим отображаемое имя пользователя.
Дальнейший список действий аналогичен первой моей статье: проверяем, есть ли у нас такой пользователь, если есть — обновляем аватарку и имя пользователя, если нет — создаем запись в базе, авторизуем на сайте и переадресовываем на главную страницу.
- vkontakte api
- oauth
- авторизация
- авторизация без паролей
Источник: habr.com
Python-сообщество
- Начало
- » Python для новичков
- » Выдача ошибка при создании бота в вконтакте.
#1 Авг. 11, 2017 18:42:38
Выдача ошибка при создании бота в вконтакте.
Помогите, пожалуйста, исправить.
Как открыть профиль VK ВКонтакте по фотографии QR кода
Ругается на 6 строку: vk.auth() NameError: name ‘vk’ is not defined
# -*- coding: utf-8 -*-
import time
import vk_api
vk_api.VkApi(token = ‘e46f64. 7a9f’)
vk.auth()
values =
def write_msg(user_id, s):
vk.method(‘messages.send’, )
while True:
response = vk.method(‘messages.get’, values)
if response[‘items’]:
values[‘last_message_id’] = response[‘items’][0][‘id’]
for item in response[‘items’]:
write_msg(item[u’user_id’],u’Привет!’)
time.sleep(1)
#2 Авг. 11, 2017 19:16:35
Выдача ошибка при создании бота в вконтакте.
vk_api.VkApi(token = ‘e46f64. 7a9f’) vk.auth()
импортируется vk_api, а не vk
#3 Авг. 11, 2017 19:25:26
Выдача ошибка при создании бота в вконтакте.
если vk_api.auth()
то получаю ругань AttributeError: ‘module’ object has no attribute ‘auth’
#4 Авг. 11, 2017 19:33:46
Выдача ошибка при создании бота в вконтакте.
onlu3
если vk_api.auth()
то получаю ругань AttributeError: ‘module’ object has no attribute ‘auth’
Если я верно понял, то это этот модуль.
Тогда должно быть так:
vk = vk_api.VkApi(token = ‘e46f64. 7a9f’) vk.auth()
Отредактировано kazaff (Авг. 11, 2017 19:34:48)
#5 Авг. 11, 2017 20:14:27
Выдача ошибка при создании бота в вконтакте.
Всё правильно, но
так я тоже уже пробовала и пример смотрела
#vk_api.VkApi(login = ‘8908709879’, password = ‘99900’) vk = vk_api.VkApi(token = ‘e46f64ac. 8357’) vk.auth()
теперь выдает ещё плюсом ошибку входа
Traceback (most recent call last):
File “CUsers/���������/PycharmProjects/mybot/bot.py”, line 6, in
vk.auth()
File “C:Python27libsite-packagesvk_apivk_api.py”, line 142, in auth
raise LoginRequired(‘Login is required to auth’)
vk_api.exceptions.LoginRequired: Login is required to auth
Также я уже выяснила, что этот код работает только со страницей, а если для сообществагруппы то сразу выскакивает ошибка.
#6 Авг. 11, 2017 20:34:35
Выдача ошибка при создании бота в вконтакте.
У меня где-то был код, который скачивал из группы все картинки, постараюсь найти.
onlu3
Также я уже выяснила, что этот код работает только со страницей, а если для сообществагруппы то сразу выскакивает ошибка.
Скорее всего права заданы неверно.
#7 Авг. 11, 2017 20:48:21
Выдача ошибка при создании бота в вконтакте.
kazaff
У меня где-то был код, который скачивал из группы все картинки, постараюсь найти.
Буду премного благодарна.
kazaff
Скорее всего права заданы неверно.
Да, надо будет посмотреть еще раз.
#8 Авг. 11, 2017 21:03:05
Выдача ошибка при создании бота в вконтакте.
import vk_api api_token = ‘8599. 43f70’ vk_session = vk_api.VkApi(token=api_token) try: vk_session.auth() except vk_api.AuthError as error_msg: print(error_msg) tools = vk_api.VkTools(vk_session) wall = tools.get_all(‘wall.get’, 100, ‘owner_id’: 1>) print(‘Posts count:’, wall[‘count’]) if wall[‘count’]: print(‘First post:’, wall[‘items’][0], ‘n’) if wall[‘count’] > 1: print(‘Last post:’, wall[‘items’][-1])
Выше пример из документации. Работает.
Свой скрипт нашел, но он для другого модуля, который vk, а не vk_api.
Отредактировано kazaff (Авг. 11, 2017 21:03:24)
#9 Авг. 11, 2017 22:28:10
Выдача ошибка при создании бота в вконтакте.
Спасибо, действительно всё гуд.
Только один вопрос у меня теперь, как с ботом из этого кода взаимодействовать? Не совсем догоняю до этого.
#10 Авг. 12, 2017 09:45:38
Выдача ошибка при создании бота в вконтакте.
Документация есть, хоть и не слишком подробная. Сам модуль тоже комментирован. Поэкспериментируйте со своим скриптом, с тем что возвращают методы. Это не так сложно и долго как кажется.
Источник: python.su
WordPress Social Login fix VK 2018
Недавно в API вк начали вносить изменения а именно в метод getProfiles и запросы к нему, после чего wordpress social login перестал пускать юзеров через вк.
Решил повозиться и запилить пару фиксов для метода входа через вк.
- Заменен метод входа getProfiles на users.get и указан тип апи в запросе чтоб вк понимали какие данные отдавать вашему сайту.
- Добавлена склейка имен (first_name + last_name) при регистрации.( на время удалено из за конфликта с кириллицей )
- photoURL изменен на photo_200 чтоб тянуть ток обрезанные квадратные аватары.
- Удален подхват данных о местоположении пользователя из за конфликтов с WordPress
Ниже прикрепляю код который стоит заменить по пути:
wp-content/plugins/wordpress-social-login/hybridauth/Hybrid/Providers/Vkontakte.php
По сути я ток решил поделиться для себя решенной проблемой)
Источник: codeseller.ru