Разобравшись с авторизацией, меня ждали не менее неожиданные открытия при работе с API Одноклассников. При наличии информационной засухи по использованию методов API этой соцсети, пришлось применять и метод ненаучного тыка. Разберу в этой статье как использовать метод group.getMembers, который запрашивает идентификаторы подписчиков группы. На момент написания статьи информация по данному методу от авторов находится здесь. Собственно и здесь дело лишь в составлении правильной строки запроса.
Секция Uses у меня выглядит так.
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,Forms, Dialogs, StdCtrls,synacode,httpsend,ssl_openssl, OleCtrls, Menus, ComCtrls, ExtCtrls, Buttons, ActiveX,ClipBrd,md5;
Я использую synapse, на мой взгляд удобную библиотеку для работы с сетью. Для преобразования MD5 использую отдельный модуль (идет в приложении к статье). Код будет работать, когда Вы уже авторизовались и переменные application_key и session_secret_key получены. В дальнейшем они участвуют в формировании подписи.
Configure Ok (Odnoklassniki) API
На форме есть метка Label1 и компонент Memo1. uid=51969616576732 — взял для примера идентификатор какой-то группы. Обработчик кнопки такой.
procedure TForm1.Button1Click(Sender: TObject); var stream: TStringStream; httpsend: THTTPSend; data:tstringlist; i,j,rs:integer; stroka:string; begin //1.
Формируем строку stroka:=’application_key=’+application_key+’format=jsonmethod=group.getMembersuid=51969616576732’+session_secret_key; stroka:=MD5DigestToStr(MD5String(stroka)); // делаем подпись, шифруя MD5 stream:=TStringStream.Create(»); // 2. Формируем запрос httpsend:=THTTPSend.
Create; httpsend.Document.Clear; httpsend.Headers.Clear; httpsend.
HTTPMethod(‘GET’,’https://api.ok.ru/fb.do?method=group.getMembersformat=jsonsig=’+stroka+’ // httpsend.Document.
SaveToStream(stream); Memo1.lines.LoadFromStream(httpsend.
Document); // 3. Ответ сервера закидывает в Мемо rs:=httpsend.ResultCode; // Код ответа сервера Label1.
Caption:=IntTostr(rs); // отображаем его в метке stream.Free; httpsend.Free; end;
В строке задействован application_key — секретный ключ приложения. Если ошибок нет, то сервер вернет примерно такое:
Если пробовать применять метод без авторизации, то сервер ругнётся вот так:
Неправильное шифрование MD5 приведет к тому, что подпись на стороне сервера не совпадет с подписью, составленную вами и сервер ответит такой фразой:
На этом подводные камни заканчиваются. В любом случае проверять запросы можно на странице описания методов apiok.ru, для этого на каждом этапе нужно заполнять поля и нажимать оранжевые кнопки. Ниже появится расчет и результат.
Что такое API простыми словами
Приложение
Источник: bogdanowsky.ru
Интеграция Одноклассники API
Рассмотрим интеграцию Одноклассники API на примере компонента публикации на странице Одноклассников авторизованного пользователя.
Перед началом работы убедитесь, что ваш сайт использует https. Одноклассники не поддерживают запросы к API с http сайта.
Для начала необходимо зайти на свою страницу, перейти в радел “Игры” в горизонтальном меню, затем в вертикальном меню выбрать раздел “Мои загруженные”. На странице загруженных снизу будет ссылка на добавление нового приложения.
Заполняем форму добавления приложения, тип приложения должен быть External. После добавления на указанный “Эл. почта для уведомлений” придёт сообщение с APP ID, Secret Key необходимые для работы публикации.
Публикация происходит по средству открытия окна с необходимыми параметрами, доступные параметры указаны на странице документации.
Пример js компонента для публикации: https://pastebin.com/azA4cgi6
Так же для публикации используется библиотека crypto-js, которая реализует md5 хеширование с помощью js. Подключить её можно из CDN:
Ссылки, которые могут пригодится:
- Документация Одноклассники API;
- Документация виджета публикации;
Опубликовано в JS https://web-automation.ru/get-started-ok-api/» target=»_blank»]web-automation.ru[/mask_link]
ok_api
История выпусков Уведомления о выпусках | Лента RSS
Эта версия
Загрузка файлов
Загрузите файл для вашей платформы. Если вы не уверены, какой выбрать, узнайте больше об установке пакетов.
Source Distribution
Uploaded 31 мар. 2020 г. source
Built Distribution
Uploaded 31 мар. 2020 г. py3
Хеши для ok_api-1.0.1.tar.gz
7df8d31a908ed7ec56d45c35cd5a568ef16c07c2d0943d09152e39a586317f7d | Копировать |
f2692d71713f878620a8924d0c4e7772 | Копировать |
09efa6d570832e0ff7b9d95e88e0d68f97c5b57883071bca1c0bd21dffece87a | Копировать |
Хеши для ok_api-1.0.1-py3-none-any.whl
fc465cf5de158baca3c30f13ec7a202211dc55541b5b828c1abe199ef7faa889 | Копировать |
1c1e8a317f049b796635fcb2234801a5 | Копировать |
966f2a35b3c56d3c7c438014dd735bae589cfe6fed7b88e432f22f836eb09112 | Копировать |
Помощь
О PyPI
Внесение вклада в PyPI
Использование PyPI
Разработано и поддерживается сообществом Python’а для сообщества Python’а.
Пожертвуйте сегодня!
PyPI», «Python Package Index» и логотипы блоков являются зарегистрированными товарными знаками Python Software Foundation.
Источник: pypi.org