欢迎来到 ScribeJava 之家,这是一个简单的 OAuth 客户端 Java 库!
为什么使用 ScribeJava?
非常简单
谁说 OAuth/OAuth2 很难?配置 ScribeJava非常简单,您的奶奶也能做到!一探究竟:
OAuthService service = new ServiceBuilder ( YOUR_CLIENT_ID )
. apiSecret ( YOUR_CLIENT_SECRET )
. build ( LinkedInApi20 . instance ());
例如,使用 LinkedIn 的 OAuth API 配置 ScribeJava 时,只需这一行(添加换行符以提高可读性)。
工作可执行示例在这里常见用法:示例
线程安全
尽可能使用 ScribeJava,并使用多个线程。
Java 7 兼容
就是这样。您可以在旧环境和 Android 应用程序中使用它。注意:要从源代码编译,您需要 Java 9 或更高版本
异步和其他 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)示例
- Armeria HTTP 客户端(要求 >= 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+)主要 1.0a 和 2.0 OAuth API
- 体式 (https://asana.com/) 示例
- 自动 (https://www.automatic.com/) 示例
- AWeber (http://www.aweber.com/) 示例
- Box (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/) 示例、异步 Apache HTTP 客户端示例、异步 Ning HTTP 客户端示例
- Fitbit (https://www.fitbit.com/) 示例
- Flickr (https://www.flickr.com/) 示例
- Foursquare (https://foursquare.com/) 示例,示例
- 冰沙 (https://github.com/frappe/frappe) 示例
- 自由职业者 (https://www.freelancer.com/) 示例
- 天才 (http://genius.com/) 示例
- GitHub (https://github.com/) 示例,使用 OkHttp HTTP 客户端的示例
- Google (https://www.google.com/) 示例、异步 Http 客户端示例、撤销示例、PKCEE 示例
- HeadHunter ХэдХантер (https://hh.ru/) 示例
- HiOrg-Server (https://www.hiorg-server.de/) 示例
- Imgur (http://imgur.com/) 示例
- Instagram (https://www.instagram.com/) 示例
- 开心网(http://www.kaixin001.com/)示例
- Kakao (https://kakao.com/) 示例
- Keycloak (https://www.keycloak.org/) 示例
- LinkedIn (https://www.linkedin.com/) 示例、示例、具有自定义范围的示例
- Mail.Ru (https://mail.ru/) 示例,使用 Async Ning HTTP 客户端的示例
- MediaWiki (https://www.mediawiki.org/) 示例
- 聚会 (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/) 示例
- Odnoklassniki Одноклассники (http://ok.ru/) 示例
- Polar (https://www.polar.com/) 示例
- Pinterest (https://www.pinterest.com/) 示例
- 500px (https://500px.com/) 示例
- 人人网(http://renren.com/)示例
- Salesforce (https://www.salesforce.com/) 示例,使用 Async Ning HTTP 客户端的示例
- 新浪(http://www.sina.com.cn/http://weibo.com/login.php)示例,示例
- Skyrock (http://skyrock.com/) 示例
- Slack (https://slack.com/) 示例
- StackExchange (http://stackexchange.com/) 示例
- 物联网(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/) 示例
- Viadeo (http://viadeo.com/) 示例
- VK ВКонтакте (http://vk.com/) 示例、客户端凭据授予示例、外部 HTTP 客户端示例
- 奇妙清单 (https://www.wunderlist.com/) 示例
- Xero (https://www.xero.com/) 示例
- XING (https://www.xing.com/) 示例
- 雅虎 (https://www.yahoo.com/) 示例,示例
- 检查示例文件夹
小型、模块化
ScribeJava 的代码很小(大约 1k LOC)并且简单易懂。这里没有自作聪明或“聪明”的黑客。您只能使用“core”或“with apis”maven 模块
Android 就绪
与 android(TM) 应用程序一起使用,开箱即用。
稳定防弹
良好的测试覆盖范围可确保您免受伤害。
当实际发生不好的事情时,ScribeJava 有意义的错误消息会准确地告诉您出了什么问题、时间和地点。
从 Maven Central 拉它!
您可以从中央 Maven 存储库中提取 ScribeJava,只需将这些添加到您的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 Request,第二个选择是捐赠。
ScribeJava 何时支持 XXX(新 RFC、自定义功能、新 API 等)
当您发送拉取请求时。这就是这里大多数更改的方式。或者您可以请某人为您做有偿工作。在某些情况下,当我对变化(技术或财务上)感兴趣时,我可以自己实现该请求。
付费咨询
如果您或您的企业依赖于 Scribejava,并且您需要 Scribejava 目前尚未实现的任何特定改进或新功能,请考虑与我联系以获取付费工作。
不到 2 分钟即可开始使用
检查入门页面并开始摇摆!请在创建问题之前阅读常见问题解答:)
您可以在 wiki 上找到一些有用的信息和答案
另外,请记住阅读 @akoskm 编写的精彩教程,以轻松将服务器端应用程序与 API(在本例中为 twitter)集成。
问题?
请随时给我们发送电子邮件或在 github.com 上创建问题
叉子
如果您有一个有用的叉子应该列在那里,请联系我们