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

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

Оффлайн alex33 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1359
  • Репутация: 171
  • Пол: Мужской
    • alekssamos ВКонтакте
    • Награды
  • Версия AutoIt: 3.3.12.0
Двухэтапная - если необходимо можно попробовать реализовать. Если это нужно.
Вот мои попытки реализации этого: тема ...

(нажмите для показа/скрытия)
« Последнее редактирование: Февраль 27, 2016, 21:50:51 от alex33 »

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

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

Оффлайн SECTOR [?]

  • Продвинутый
  • ***
  • Сообщений: 389
  • Репутация: 56
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Временно использую этот метод
Код: AutoIt [Выделить]
Func _VK_API_OAuth_IE($VK_API_ID,$VK_Scope = 2015231)

    Local $oIE = _IECreateEmbedded()
    If @error Then Return __vk_ErrorReport("_IECreateEmbedded Error")

    Local $iOpt = Opt("GUIOnEventMode",0)

    Local $hGUI = GUICreate("VK",600,500,-1,-1,0x00080000+0x00040000)
    GUICtrlCreateObj($oIE,0,0,600,500)
    GUICtrlSetResizing(-1,1)
    _IENavigate($oIE,'http://oauth.vk.com/authorize?client_id='&$VK_API_ID&'&redirect_uri=http://api.vk.com/blank.html&scope='&$VK_Scope&'&display=wap&response_type=token',1)
    GUISetState()

    Local $url = ""
    While 1
        $url = _IEPropertyGet($oIE,"locationurl")

        If StringInStr($url,"access_token=") <> 0 Then ExitLoop
        If StringInStr($url,"error=") <> 0 Then
            GUIDelete()
            Opt("GUIOnEventMode",$iOpt)
            Return -1
        EndIf

        Switch GUIGetMsg()
            Case -3
                GUIDelete()
                Opt("GUIOnEventMode",$iOpt)
                Return -1
        EndSwitch
    WEnd

    GUIDelete()
    Opt("GUIOnEventMode",$iOpt)

    $vAT = __responseParse($url)
    $url = ''
    If IsArray($vAT) And $vAT[1][0] = "access_token" Then
        $oRequest = ObjCreate('WinHttp.WinHttpRequest.5.1')
        If @error Then
            _VK_API_Error(100)
        EndIf
        $oErrorHandler = ObjEvent('AutoIt.Error', 'ErrorFunc')
        $oRequest.Option(6) = False ;WinHttpRequestOption_EnableRedirects
        Return $vAT
    Else
        Return -1
    EndIf

EndFunc

Func __vk_ErrorReport($sText)

    Local $sTime = _NowCalc()
    FileWriteLine(@ScriptDir&"\VkError.log",$sTime&" :: "&$sText)
    ConsoleWrite("---------------------"&@CRLF&"! Vk - "&$sText&@CRLF&"-+++++++++++++++++++"&@CRLF)

EndFunc


Но использование IE меня не очень радует(

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

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

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

Я сейчас нашел другой вариант работы с API VK - без "XML DOM wrapper (COM)", думаю двухэтапную и выход новой версии чуть задержится... особенно с праздниками.
Хочу уйти от дополнительной библиотеки и получать данные в JSON. Массив получения данных будет такой же, код будет чуть меньше.

Первоначальная авторизация уже есть - но на капчу при заходе все никак не выйти, чтобы я смог ее отловить.

PS: двухэтапную пробовал пройти через "WinHttp" - там с запросами все хорошо и сделать все можно.
OS: WinXp SP3 (RUS), Win7 (x86/x64)


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

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

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

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

Версия разработки:
  • 1.3.0.1 (1.3-a)
    Изменение метода получения данных: используем JSON
  • 1.3.0.2 (1.3-a2)
    Реализована двухэтапная аутентификация (подтверждение входа через SMS)
  • 1.3.1.3 (1.3-b3)
    Исправления ошибок в функции _VK_GetMethod - некоторые методы возвращали некорректный JSON для _JSON_Decode

Подробно:
  • Данная версия ознакомительная (тестовая), возможны ошибки в работе ПО.
  • нет необходимости использовать библиотеку "XML DOM wrapper (COM)"
  • Не используются "куки" и другие функции
  • Название функции авторизации заменена на "_VK_API_OAuth2", параметры передаваемые прежние: ($VK_Email, $VK_PassWORD, $_cookie = False, $VK_API_ID = Default, $VK_Scope = 2015231)
  • Переименован глобальный массив получения данных - $VK_GM. Содержимое/структура остались прежними

Скачать:
github.com: Github.com/VK_Desktop_API/alpha

Инструкция в примерах:
(нажмите для показа/скрытия)

 Снимок:
(нажмите для показа/скрытия)
« Последнее редактирование: Март 16, 2016, 10:42:25 от ---Zak--- »

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

Re: Обращение к API vk.com и обработка полученных данных
« Ответ #48 Отправлен: Март 10, 2016, 11:44:19 »

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

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

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

Версия разработки:
  • 1.3.1.4 (1.3-b4)
    Исправление ошибок связанных с методом "photos.getUploadServer"
    Добавлена функция _WinHTTP_FileUpload

Пример реализации загрузки изображений в альбом:
(нажмите для показа/скрытия)

Пример реализации загрузки музыки из группы "Ленинград" (http://vk.com/sosimc):
(нажмите для показа/скрытия)
« Последнее редактирование: Март 18, 2016, 13:55:54 от ---Zak--- »

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

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

  • Автор темы
  • Репутация: 110
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Обращение к API ВКонтакте
« Ответ #50, Отправлен: Сентябрь 07, 2016, 12:22:23 »
Примечание разработки:

Версия AutoIt: 3.3.14.2
Версия: 1.4.1.1 (beta)/(1.4-b1)
  • Полное или частичное переименование функций + частичное обновление функций библиотеки.
  • Привязка к версии API ВКонтакте (5.53)
  • С вводом режима 'offline' на уровне "Права доступа для токена пользователя" отсутствует необходимость вести разработку в сторону получения и обработки 'Cookie' после авторизации пользователя. К сожалению, данный метод еще не реализован.
  • Получение 2D массива на стадии декодирования JSON ответа. В некоторых случаях функция __JSONDecode работает не корректно... Временно стоят 'легкие заглушки'.

ОСНОВНЫЕ ФУНКЦИИ:
Код: AutoIt [Выделить]
;~ ===============================================================================
;~    _vAPI_OAuth2 - первоначальная авторизации пользователя
;~    _vAPI_GETMethod - выполнение запросов к API ВКонтакте
;~    _vAPI_TOKENParse - получение access_token
;~    _vAPI_SCOPE - разрешение прав доступа
;~
;~    _ARRS - возвращение позиции столбца в 2D массиве по первичному элементу
;~    _WinHTTP_FileUpload - функция используется для загрузки изображений
;~
;~    _vGUI_CAPTCHA - вывод GUI с требованием ввода кода с картинки (Captcha).
;~    _vGUI_AUTHCODE - вывод GUI ввода данных для двухэтапной аутентификации
;~
;~    __JSONDecode - декодирование JSON ответа API и реализации 2D массива
;~ ===============================================================================


ИНСТРУКЦИЯ:
(нажмите для показа/скрытия)

ПРИМЕР (1.4-b1):
(нажмите для показа/скрытия)
« Последнее редактирование: Сентябрь 07, 2016, 13:46:58 от ---Zak--- »

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7806
  • Репутация: 2279
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Re: Обращение к API ВКонтакте
« Ответ #51, Отправлен: Декабрь 23, 2016, 10:50:40 »
---Zak---
Уже не работает, можно обновить?


Правила, Поиск, Супер тема


AutoIt is simple, subtle, elegant.


«Не оказываю тех. поддержку через ПМ/ICQ, и по электронной почте - для этого есть форум. (C)»
«Законы Мэрфи неоспоримы!»


Мои работы

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

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

  • Автор темы
  • Репутация: 110
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Обращение к API ВКонтакте
« Ответ #52, Отправлен: Март 20, 2017, 11:29:25 »
CreatoR
Добрый день.

Извиняюсь, что так долго здесь не появлялся.
А что именно не работает ? Какой метод VK запускаете ?

PS: скачал с GitHub и запустил пример... все сработало.

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

Re: Обращение к API ВКонтакте
« Ответ #52 Отправлен: Март 20, 2017, 11:29:25 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
2 Ответов
3002 Просмотров
Последний ответ Январь 27, 2010, 13:49:07
от oneDmitry
140 Ответов
59903 Просмотров
Последний ответ Апрель 19, 2015, 02:43:50
от Broadcastic
1 Ответов
2640 Просмотров
Последний ответ Апрель 07, 2013, 12:16:18
от inververs
4 Ответов
1697 Просмотров
Последний ответ Январь 27, 2014, 20:49:53
от La2Angel
5 Ответов
2353 Просмотров
Последний ответ Февраль 23, 2014, 13:54:16
от Garrett
5 Ответов
1476 Просмотров
Последний ответ Май 05, 2014, 11:23:10
от InnI
3 Ответов
1324 Просмотров
Последний ответ Март 30, 2015, 17:16:15
от Rioran
5 Ответов
1449 Просмотров
Последний ответ Февраль 09, 2016, 12:54:16
от Cornet
2 Ответов
625 Просмотров
Последний ответ Февраль 10, 2016, 12:07:37
от Eugenius
7 Ответов
1547 Просмотров
Последний ответ Февраль 24, 2016, 14:39:56
от The_Immortal