Добро пожаловать на сайт ScribeJava, простой Java-библиотеки OAuth-клиента!
Зачем использовать ScribeJava?
Мертвая простота
Кто сказал, что OAuth/OAuth2 — это сложно? Настроить ScribeJava настолько просто, что справится даже ваша бабушка ! проверьте это:
OAuthService service = new ServiceBuilder ( YOUR_CLIENT_ID )
. apiSecret ( YOUR_CLIENT_SECRET )
. build ( LinkedInApi20 . instance ());
Эта единственная строка (добавлены новые строки для удобства чтения) — единственное, что вам нужно, например, для настройки ScribeJava с помощью LinkedIn OAuth API.
Примеры рабочих исполняемых файлов находятся здесь. Частое использование: пример
Потобезопасный
Ударьте по ScribeJava так сильно и с любым количеством потоков.
Совместимость с Java 7
Вот и все. Вы можете использовать его в старых средах и в приложениях для Android. примечание: для компиляции из исходников вам понадобится Java 9 или новее.
Async и другие HTTP-клиенты
ScribeJava поддерживает несколько HTTP-клиентов «из коробки»:
- Пример ning async http client 1.9.x (модуль maven scribejava-httpclient-ning)
- Пример асинхронного Http-клиента asynchttpclient 2.x (модуль maven scribejava-httpclient-ahc)
- Пример OkHttp (модуль maven scribejava-httpclient-okhttp)
- Пример Apache HttpComponents HttpClient (модуль maven scribejava-httpclient-apache)
- Пример HTTP-клиента Armeria (требуется >= Java 8)
- любой пример HTTP-клиента, созданного извне
просто добавьте соответствующие модули maven в свой pom
Поддерживает множество потоков и дополнительных функций.
- RFC 6749 Структура авторизации OAuth 2.0, предоставление кода авторизации, пример
- RFC 6749 Структура авторизации OAuth 2.0, предоставление авторизации учетных данных пароля владельца ресурса
- RFC 6749 Структура авторизации OAuth 2.0, предоставление авторизации учетных данных клиента, пример
- RFC 6749 Структура авторизации OAuth 2.0, обновление токена доступа, пример
- RFC 6750 Структура авторизации OAuth 2.0: использование токена носителя
- RFC 7636 Ключ подтверждения для обмена кодом общедоступными клиентами OAuth (PKCE), пример
- RFC 7009 Отзыв токена OAuth 2.0, пример
- RFC 8628 Пример предоставления авторизации устройства OAuth 2.0
- RFC 5849 Протокол OAuth 1.0, пример
Поддерживает все (более 50) основных API OAuth 1.0a и 2.0 «из коробки».
- Пример асаны (https://asana.com/)
- Пример автоматического (https://www.automatic.com/)
- Пример AWeber (http://www.aweber.com/)
- Пример коробки (https://www.box.com/)
- Пример Dataporten (https://docs.dataporten.no/)
- Пример Digg (http://digg.com/)
- Пример Discord (https://discordapp.com/)
- Доктор на работе (https://www.doktornarabote.ru/)
- Пример Dropbox (https://www.dropbox.com/)
- Пример Etsy (https://www.etsy.com/)
- Пример Facebook (https://www.facebook.com/), пример с HTTP-клиентом Async Apache, пример с HTTP-клиентом Async Ning
- Пример Fitbit (https://www.fitbit.com/)
- Пример Flickr (https://www.flickr.com/)
- Пример Foursquare (https://foursquare.com/), пример
- Пример фраппе (https://github.com/frappe/frappe)
- Пример фрилансера (https://www.freelancer.com/)
- Пример Genius (http://genius.com/)
- Пример GitHub (https://github.com/), пример с HTTP-клиентом OkHttp
- Пример Google (https://www.google.com/), пример с Async Http Client, пример Revoke, пример с PKCEE
- Пример HeadHunter ХэдХантер (https://hh.ru/)
- Пример HiOrg-Server (https://www.hiorg-server.de/)
- Пример Imgur (http://imgur.com/)
- Пример Instagram (https://www.instagram.com/)
- Пример Kaixin开心网 (http://www.kaixin001.com/)
- Пример Какао (https://kakao.com/)
- Пример Keycloak (https://www.keycloak.org/)
- LinkedIn (https://www.linkedin.com/) пример, пример, пример с настраиваемыми областями
- Пример Mail.Ru (https://mail.ru/), пример с HTTP-клиентом Async Ning
- Пример MediaWiki (https://www.mediawiki.org/)
- Пример Meetup (https://www.meetup.com/), пример
- Пример Microsoft Azure Active Directory (Azure AD) (http://azure.microsoft.com/)
- Пример Microsoft Azure Active Directory (Azure AD) 2.0 (http://azure.microsoft.com/)
- Пример Microsoft Live (https://login.live.com/)
- Пример Misfit (http://misfit.com/)
- Пример NAVER (http://www.naver.com/)
- Пример Одноклассники Одноклассники (http://ok.ru/)
- Пример Polar (https://www.polar.com/)
- Пример Pinterest (https://www.pinterest.com/)
- Пример 500 пикселей (https://500px.com/)
- Пример Ренрен (http://renren.com/)
- Пример Salesforce (https://www.salesforce.com/), пример с HTTP-клиентом Async Ning
- Сина (http://www.sina.com.cn/ http://weibo.com/login.php) пример, пример
- Пример Skyrock (http://skyrock.com/)
- Пример Slack (https://slack.com/)
- Пример StackExchange (http://stackexchange.com/)
- The Things Network (v1-staging и v2-preview) (https://www.thethingsnetwork.org/), пример v1, пример предварительной версии v2
- Пример Trello (https://trello.com/)
- Пример Tumblr (https://www.tumblr.com/)
- Пример TUT.BY (http://www.tut.by/)
- Пример Твиттера (https://twitter.com/)
- Пример uCoz (https://www.ucoz.com/)
- Пример Виадео (http://viadeo.com/)
- Пример ВК ВКонтакте (http://vk.com/), пример предоставления клиентских учетных данных, пример с внешним HTTP-клиентом
- Пример списка Wunderlist (https://www.wunderlist.com/)
- Пример Xero (https://www.xero.com/)
- Пример XING (https://www.xing.com/)
- Yahoo (https://www.yahoo.com/) пример, пример
- проверьте папку примеров
Маленький и модульный
Код ScribeJava небольшой (около 1 тыс. LOC) и прост для понимания. Никаких хитрых и «умных» хаков здесь нет. Вы можете использовать только модули maven «core» или «with apis».
Поддержка Android
Готово работать с приложениями Android(TM).
Стабильный и пуленепробиваемый
Хорошее покрытие тестов, чтобы защитить вас от вреда.
Когда действительно происходит что-то плохое, содержательные сообщения об ошибках ScribeJava точно расскажут вам, что пошло не так, когда и где.
Возьмите его из Maven Central!
Вы можете получить ScribeJava из центрального репозитория maven, просто добавьте их в свой файл pom.xml :
< dependency >
< groupId >com.github.scribejava</ groupId >
< artifactId >scribejava-apis</ artifactId >
< version >8.3.3</ version >
</ dependency >
И если вам нужны только основные классы (вот и все, без какого-либо специального кода внешнего API (FB, VK, GitHub, Google и т. д.), вы можете извлечь только «основной» артефакт.
< dependency >
< groupId >com.github.scribejava</ groupId >
< artifactId >scribejava-core</ artifactId >
< version >8.3.3</ version >
</ dependency >
Как я могу помочь ScribeJava
В первую очередь приветствуются Pull Requests, второй вариант — пожертвования.
Когда ScribeJava будет поддерживать XXX (новый RFC, специальные функции, новый API и т. д.)
Когда вы отправите запрос на включение. Именно так происходит большинство изменений здесь. Или вы можете попросить кого-нибудь сделать за вас оплачиваемую работу. В некоторых случаях, когда меня интересуют изменения (технические или финансовые), я могу реализовать запрос самостоятельно.
Платная консультация
Если вы или ваш бизнес зависите от Scribejava и вам нужны какие-либо конкретные улучшения или новые функции, которые в настоящее время не реализованы в Scribejava, подумайте о том, чтобы связаться со мной по поводу оплачиваемой работы.
Начало работы менее чем за 2 минуты
Посетите страницу «Начало работы» и начните качаться! Прежде чем создавать проблему, прочтите FAQ :)
Полезную информацию и ответы вы можете найти на вики.
Кроме того, не забудьте прочитать фантастический учебник, написанный @akoskm, чтобы легко интегрировать серверное приложение с API (в данном случае Twitter).
Вопросы?
Не стесняйтесь, напишите нам по электронной почте или создайте проблему прямо здесь, на github.com.
Вилки
Если у вас есть полезный форк, который должен быть там указан, свяжитесь с нами.