Автор Тема: Обращение к API ВКонтакте  (Прочитано 47467 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Коршун [?]

  • Новичок
  • *
  • Сообщений: 52
  • Репутация: 1
  • Пол: Мужской
    • Награды
По-моему отвалилась авторизация ВК... Ошибка 101

Русское сообщество AutoIt

Re: Обращение к API vk.com и обработка полученных данных
« Ответ #30 Отправлен: Июнь 22, 2015, 11:16:43 »

Оффлайн ---Zak--- [?]

  • Скриптер
  • ****
  • Сообщений: 438

  • Автор темы
  • Репутация: 110
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Примечание разработки:
Версия AutoIt: 3.3.12.0

Версия разработки:
  • 1.1.3 (beta)
    Перерабока функций: авторизация.

Файлы:
см. прикреплённые файлы.
Зеркало 1: drive.google.com
« Последнее редактирование: Июнь 22, 2015, 15:39:13 от ---Zak--- »
OS: WinXp SP3 (RUS), Win7 (x86/x64)


My development:
http://autoit-script.ru/index.php/topic,11541.0.html

Оффлайн Коршун [?]

  • Новичок
  • *
  • Сообщений: 52
  • Репутация: 1
  • Пол: Мужской
    • Награды
При получении капчи - авторизации не проходит
$VK_HIDDEN имеет Sid и дальше ошибка т.к. в массиве больше строк на 2 чем обычно)

Оффлайн ---Zak--- [?]

  • Скриптер
  • ****
  • Сообщений: 438

  • Автор темы
  • Репутация: 110
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Коршун
В понедельник/вторник гляну что там с авторизацией при капче...
Сам понимаешь - выходные все дела))) :beer:

PS: видимо когда переделывал авторизацию совершенно "случайно" забыл про капчу, т.к. что-то не встречаю вызова ф-ции _VK_API_onLogin
« Последнее редактирование: Июнь 27, 2015, 18:05:23 от ---Zak--- »

Русское сообщество AutoIt

Re: Обращение к API vk.com и обработка полученных данных
« Ответ #33 Отправлен: Июнь 27, 2015, 17:56:00 »

Оффлайн Коршун [?]

  • Новичок
  • *
  • Сообщений: 52
  • Репутация: 1
  • Пол: Мужской
    • Награды
Как показывают тесты - капча всплывает в разных местах...

Оффлайн ---Zak--- [?]

  • Скриптер
  • ****
  • Сообщений: 438

  • Автор темы
  • Репутация: 110
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Примечание разработки:
Версия AutoIt: 3.3.12.0

Версия разработки:
  • 1.1.3.1 (beta)
    Перерабока функций: авторизация - исправление ошибок (вывод и обработка "капчи").
  • 1.1.4 (beta)
    Тестовая версия, которая может использовать "куки" после авторизации на сайте vk.com.

Инструкция по 1.1.4 (beta):
Тестовый файл находится в отдельной папке и не рекомендуется использовать на другом компьютере: "куки" на данный момент не зашифрованы - сохраняются в отдельном файле (в открытом виде). Использовать на свой страх и риск - при передаче иным лицам данного файла может повлечь за собой печальные последствия.

Как использовать:
Скачать "VK_Desktop_API.au3" с github.com расположеный в папке "Testing/COOKIE". Пройти первую авторизацию.

Примечание:
Первоначальная версия носит исключительно информационный характер. Использование "куков" работает на данный момент сутки. В файле прописывается текущая дата, если она совпадает, то авторизации второй раз (скорее всего) не будет.

Отчет о багах в данной версии:
Убедительная просьба пишите какую версию Вы используете.


Добавлено: Июнь 30, 2015, 11:15:39
Версия разработки:
  • 1.1.4.1 (beta)
    Исправление ошибок в тестовой версии с использованием "куков"

Инструкция по 1.1.4.1 (beta):
Тестовый файл находится в отдельной папке и не рекомендуется использовать на другом компьютере: "куки" на данный момент не зашифрованы - сохраняются в отдельном файле (в открытом виде). Использовать на свой страх и риск - при передаче иным лицам данного файла может повлечь за собой печальные последствия.
В функции _VK_API_OAuth добавлен новый параметр "$VK_Cookie = False" отвечающий за использование "куков" или нет (по-умолчанию не использует).

Как использовать/пример:
Скачать "VK_Desktop_API.au3" с github.com расположеный в папке "Testing/COOKIE".
Код: AutoIt [Выделить]
    $VK_LogIN = ""
    $VK_PassWORD = ""
    $VK_API_ID = "2987875"
    _VK_API_OAuth($VK_LogIN, $VK_PassWORD, $VK_API_ID, True)
;~ -------------------------------------------------------------------------------
;~ Example of downloading music for the current user
;~ -------------------------------------------------------------------------------
    $vARR = _VK_GetMethod("audio.get", "count=20")
    _ArrayDisplay($vARR)

При первом запуске авторизация происходит через логин и пароль.
Если запустить скрипт очередной раз - авторизация произойдет через "куки", которые распологаются в отдельном файле.
   
Примечание:
Первоначальная версия носит исключительно информационный характер. Использование "куков" работает на данный момент сутки. В файле прописывается текущая дата, если она совпадает, то авторизации второй раз (скорее всего) не будет.

Отчет о багах в данной версии:
Убедительная просьба пишите какую версию Вы используете.
« Последнее редактирование: Июнь 30, 2015, 12:18:46 от ---Zak--- »

Оффлайн ---Zak--- [?]

  • Скриптер
  • ****
  • Сообщений: 438

  • Автор темы
  • Репутация: 110
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Примечание разработки:
Версия AutoIt: 3.3.14.0

Версия разработки:
  • 1.2.2.1 (rc1)
    Перевод на стадию разработки: Релиз-кандидат

Подробно:
  • Исправлены мелкие ошибки с использованием "куков"
  • Файл в сохранением "куков" остался без шифрования (в открытом виде), но теперь он называется "cookie.ini"
  • В файл "куков" добавлен новый параметр - эл.почта пользователя
  • Изменен порядок переменных в вызове функция авторизации "_VK_API_OAuth" - см. "Параметры _VK_API_OAuth" ниже
  • Изменена функция авторизации "_VK_API_OAuth" указывать ID собственного приложения не обязательно (по-умолчанию используеся "2987875") - теперь это 4 параметр
  • Использование "куков" по-умолчанию выключенно - False. Для включения необходимо 3 параметром в вызове функции авторизации "_VK_API_OAuth" поставить "True"
  • При запросах "User-Agent" теперь "Mozilla/4.0 (compatible; MSIE 8.0; Win32)"
  • После авторизации используется метод "stats.trackVisitor" (Добавляет данные о текущем сеансе в статистику посещаемости приложения.)
  • Между вывовами методов по-умолчанию используется задержка в 0,5 секунд

Параметры _VK_API_OAuth:
Код: AutoIt [Выделить]
_VK_API_OAuth($VK_LogIN, $VK_PassWORD, $VK_Cookie = False, $VK_API_ID = Default, $VK_Scope = 2015231)

  • $VK_LogIN - Эл.почта или номер телефона пользователя
  • $VK_PassWORD - Пароль пользователя
  • $VK_Cookie - Использовать/не использовать "куки" (по-умолчинию: не использовать)
  • $VK_API_ID - Идентификатор Вашего приложения (по-умолчанию: 2987875)
  • $VK_Scope - Запрашиваемые права доступа приложени (по-умолчанию: 2015231) (см. документацию API ВКонтакте)

Инструкция в примерах:
(нажмите для показа/скрытия)
« Последнее редактирование: Март 10, 2016, 15:35:36 от ---Zak--- »

Оффлайн Коршун [?]

  • Новичок
  • *
  • Сообщений: 52
  • Репутация: 1
  • Пол: Мужской
    • Награды
Опять при загрузке фото на сервер - photos_list":"[]"  :stars:
Как это лечить в принципе? что проверять??

Русское сообщество AutoIt

Re: Обращение к API vk.com и обработка полученных данных
« Ответ #37 Отправлен: Январь 04, 2016, 03:34:13 »

Оффлайн ruda_den [?]

  • Новичок
  • *
  • Сообщений: 1
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Опять при загрузке фото на сервер - photos_list":"[]"  :stars:
Как это лечить в принципе? что проверять??

В том то и пакость, что скрипт который писал CreatoR, работает только в старых версиях Autoit-a, а в новой ни в какую работать не хочет, смотрел пакеты с помощью Wireshark, так отсылаемый пакет в старой версии разительно отличается от новой, в новой даже файл не передаётся, я не особо хорошо разбираюсь в этой всей сетевой ерунде, по этому ума не приложу что нужно делать, но пакеты отличаются на столько сильно, будто сгенерированы разным кодом, хотя код 1 и тот же... написаный  CreatoR-ом.

А еще пакость в том, что к примеру меня ни новая ни сатрая версии не устраивают Autoit-a, потому что в тарой ни в какую не работают GET запросы через Proxy, но работает загрузка фото, а в новой версии не работает загрузка фото, но работают GET запросы через Proxy.

В общем я в унынии и отчаянье, очень долго разбирался что к чему, ну и выяснить смог только то что косяк в Autoit-e.


Добавлено: Январь 13, 2016, 16:42:24
В общем, тупил я долго, но наконец то протупился...

Для того чтобы загружались фото в ВК, нужно использовать версию Autoit 3.3.12, дата её выхода 1 June 2014, более свежие версии по какой то причине не верно интерпретируют функцию написанную CreatoR-ом, для загрузки фото в ВК.

Если у кого-то есть проблемы с работой Proxy, а именно по какой то причине, Autoit, принимает пустой ответ от серверов ВК, то во первых, прокси должен быть HTTPS, как я понял, может и другие типы работают, проверять надо... но HTTP, работать точно не будут! Во вторых, лишь небольшая часть HTTPS Proxy, работают нормально с Autoit-ом и ВК, по этому, перебрав даже 10 различных Proxy, вы можете получить пустой ответ! Тут только поможет упорство, я лично брал Proxy с сайта Хайдми... Всё это справедливо так же для Autoit 3.3.12

Надеюсь помог хоть кому то, если в чём то я не прав, поправьте пожалуйста.
И было бы не плохо разобраться, почему же не работает функция написанная CreatoR-ом в новой версии Autoit-а.
« Последнее редактирование: Январь 13, 2016, 16:42:24 от ruda_den, Причина: Объединение сообщений »

Оффлайн ---Zak--- [?]

  • Скриптер
  • ****
  • Сообщений: 438

  • Автор темы
  • Репутация: 110
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Опять при загрузке фото на сервер - photos_list":"[]"  :stars:
Как это лечить в принципе? что проверять??

На 'Github' опубликовал версию с загрузкой фотографий (ссылка на файл)

Проверял только на загрузку фото в своем альбоме, но и на загрузку фото в группу так же должно работать.
Если все будет хорошо и будет работать - переделаю это все в божеское состояние и уже закину функцию в "VK_Desktop_API".

PS: ушли от TCP перешли на WinHTTP
PSS: AutoIt 3.3.14.3
« Последнее редактирование: Февраль 02, 2016, 13:40:02 от ---Zak--- »

Оффлайн Коршун [?]

  • Новичок
  • *
  • Сообщений: 52
  • Репутация: 1
  • Пол: Мужской
    • Награды
Работает!

Не очень понял что с авторизацией намудрил, хэш получил по старой схеме
По-моему перемудрил с массивом $pURLs
И почему тип файла "file", вместо "photo" при загрузке?
Не забудь про описание фото при сохранении ;)

А вообще - спасибо большое за труд!
Как всегда - красавец)) :IL_AutoIt_1:

Оффлайн ---Zak--- [?]

  • Скриптер
  • ****
  • Сообщений: 438

  • Автор темы
  • Репутация: 110
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Не очень понял что с авторизацией намудрил, хэш получил по старой схеме
Если сравнивать "1.2.2.1 (rc1)" с версией "1.1.3.1 (beta)", то различия небольшие:
1.1.3.1 (beta):
Код: AutoIt [Выделить]
_VK_API_OAuth($VK_LogIN, $VK_PassWORD, $VK_API_ID, $VK_Scope = 2015231)

$VK_LogIN - логин
$VK_PassWORD - пароль
$VK_API_ID - ID приложения
$VK_Scope - права доступа (по-умолчанию: 2015231)

1.2.2.1 (rc1):
Код: AutoIt [Выделить]
_VK_API_OAuth($VK_LogIN, $VK_PassWORD, $VK_Cookie = False, $VK_API_ID = Default, $VK_Scope = 2015231)

$VK_LogIN - логин
$VK_PassWORD - пароль
$VK_Cookie - использование куков (по-умолчанию: нет)
$VK_API_ID - ID приложения (по-умолчанию: Default = 2987875)
$VK_Scope - права доступа (по-умолчанию: 2015231)

Если тебя смущают куки и используешь свое приложение:
Код: AutoIt [Выделить]
_VK_API_OAuth($VK_LogIN, $VK_PassWORD, False, "0123456789")

*** 0123456789 - ID приложения

По-моему перемудрил с массивом $pURLs
Теоретически не мог перемудрить... это ответ от сервера, в котором мы берем ссылку
И почему тип файла "file", вместо "photo" при загрузке?
Тестировал отправку запроса изображений через раздел для разработчиков - Charles показал в запросе "file". Соответственно решил его и оставить, но возможно с "photo" так же работает
Не забудь про описание фото при сохранении ;)
Не помню я уже как добавлять описание к фотографиям. Да и не помню делал ли...
Если будет время - сделаю и описание.

На счет описания к загрузке фото:
Код: AutoIt [Выделить]
...
$VK_group_id = ""
$sCaption = "Здесь описание к фото"
...
If StringInStr($WinHTTPFileUpload, 'photos_list') Then
...
_VK_GetMethod("photos.save", $_VK_GetQ&"&server="&$sServer&"&photos_list="&$sPhotos_list&"&hash="&$sHash&"&caption="&$sCaption)
EndIf
...
 

« Последнее редактирование: Март 10, 2016, 15:36:10 от ---Zak--- »

Оффлайн Коршун [?]

  • Новичок
  • *
  • Сообщений: 52
  • Репутация: 1
  • Пол: Мужской
    • Награды
1.2.0.1 (rc1):
Код: AutoIt [Выделить]
_VK_API_OAuth($VK_LogIN, $VK_PassWORD, $VK_Cookie = False, $VK_API_ID = Default, $VK_Scope = 2015231)

Может лучше было не менять последовательность? Ерунда, но меня ввела в ступор))
Код: AutoIt [Выделить]
_VK_API_OAuth($VK_LogIN, $VK_PassWORD, $VK_API_ID = Default, $VK_Cookie = False, $VK_Scope = 2015231)


Тестировал отправку запроса изображений через раздел для разработчиков - Charles показал в запросе "file". Соответственно решил его и оставить, но возможно с "photo" так же работает
В методах API VK указано "photo", думаю разницы нет сегодня, но может появиться "завтра"  :think:

Если все будет хорошо и будет работать - переделаю это все в божеское состояние и уже закину функцию в "VK_Desktop_API".
Вроде все хорошо, буду ждать библиотеку. Спасибо!!! :beer:

Оффлайн SECTOR [?]

  • Продвинутый
  • ***
  • Сообщений: 388
  • Репутация: 56
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Как быть с двухэтапной аутентификацией? Поддержка намечается?)

Оффлайн ---Zak--- [?]

  • Скриптер
  • ****
  • Сообщений: 438

  • Автор темы
  • Репутация: 110
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Как быть с двухэтапной аутентификацией? Поддержка намечается?)
Я уже думал это никому не надо и никто не использует... за исключением Коршун'а.

Двухэтапная - если необходимо можно попробовать реализовать. Если это нужно.

Русское сообщество AutoIt

Re: Обращение к API vk.com и обработка полученных данных
« Ответ #44 Отправлен: Февраль 15, 2016, 16:19:43 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
2 Ответов
2962 Просмотров
Последний ответ Январь 27, 2010, 13:49:07
от oneDmitry
140 Ответов
58691 Просмотров
Последний ответ Апрель 19, 2015, 02:43:50
от Broadcastic
1 Ответов
2606 Просмотров
Последний ответ Апрель 07, 2013, 12:16:18
от inververs
4 Ответов
1651 Просмотров
Последний ответ Январь 27, 2014, 20:49:53
от La2Angel
5 Ответов
2310 Просмотров
Последний ответ Февраль 23, 2014, 13:54:16
от Garrett
5 Ответов
1441 Просмотров
Последний ответ Май 05, 2014, 11:23:10
от InnI
3 Ответов
1264 Просмотров
Последний ответ Март 30, 2015, 17:16:15
от Rioran
5 Ответов
1394 Просмотров
Последний ответ Февраль 09, 2016, 12:54:16
от Cornet
2 Ответов
583 Просмотров
Последний ответ Февраль 10, 2016, 12:07:37
от Eugenius
7 Ответов
1492 Просмотров
Последний ответ Февраль 24, 2016, 14:39:56
от The_Immortal