Bem-vindo à página inicial do ScribeJava, a biblioteca Java cliente OAuth simples!
Por que usar o ScribeJava?
Simples
Quem disse que OAuth/OAuth2 era difícil? Configurar o ScribeJava é tão fácil que sua avó pode fazer ! Confira:
OAuthService service = new ServiceBuilder ( YOUR_CLIENT_ID )
. apiSecret ( YOUR_CLIENT_SECRET )
. build ( LinkedInApi20 . instance ());
Essa única linha (novas linhas adicionadas para facilitar a leitura) é a única coisa que você precisa para configurar o ScribeJava com a API OAuth do LinkedIn, por exemplo.
Exemplos de executáveis funcionais estão aqui Uso comum: exemplo
Threadsafe
Acesse o ScribeJava com tanta força e com quantos threads desejar.
Compatível com Java 7
É isso. Você pode usá-lo em ambientes antigos e em aplicativos Android. nota: Para compilar a partir de fontes você precisará do Java 9 ou mais recente
Async e outros clientes HTTP
ScribeJava suporta vários clientes HTTP prontos para uso:
- exemplo de cliente http assíncrono ning 1.9.x (módulo maven scribejava-httpclient-ning)
- Exemplo de cliente Http assíncrono asynchttpclient 2.x (módulo maven scribejava-httpclient-ahc)
- Exemplo de OkHttp (módulo maven scribejava-httpclient-okhttp)
- Exemplo de Apache HttpComponents HttpClient (módulo maven scribejava-httpclient-apache)
- Exemplo de cliente HTTP Armeria (obrigatório >= java 8)
- qualquer exemplo de cliente HTTP criado externamente
basta adicionar módulos maven correspondentes ao seu pom
Suporta muitos fluxos e recursos adicionais
- RFC 6749 A estrutura de autorização OAuth 2.0, concessão de autorização de código de autorização, exemplo
- RFC 6749 A estrutura de autorização OAuth 2.0, concessão de autorização de credenciais de senha do proprietário do recurso
- RFC 6749 A estrutura de autorização OAuth 2.0, concessão de autorização de credenciais de cliente, exemplo
- RFC 6749 A estrutura de autorização OAuth 2.0, atualizando um token de acesso, exemplo
- RFC 6750 A estrutura de autorização OAuth 2.0: uso de token de portador
- Chave de prova RFC 7636 para troca de código por clientes públicos OAuth (PKCE), exemplo
- Revogação de token RFC 7009 OAuth 2.0, exemplo
- Exemplo de concessão de autorização de dispositivo RFC 8628 OAuth 2.0
- RFC 5849 O protocolo OAuth 1.0, exemplo
Suporta todas as (50+) principais APIs OAuth 1.0a e 2.0 prontas para uso
- Exemplo de Asana (https://asana.com/)
- Exemplo automático (https://www.automatic.com/)
- Exemplo AWeber (http://www.aweber.com/)
- Exemplo de caixa (https://www.box.com/)
- Exemplo de Dataporten (https://docs.dataporten.no/)
- Exemplo Digg (http://digg.com/)
- Exemplo de discórdia (https://discordapp.com/)
- Doutor em trabalho (https://www.doktornarabote.ru/)
- Exemplo do Dropbox (https://www.dropbox.com/)
- Exemplo Etsy (https://www.etsy.com/)
- Exemplo do Facebook (https://www.facebook.com/), exemplo com cliente HTTP Async Apache, exemplo com cliente HTTP Async Ning
- Exemplo Fitbit (https://www.fitbit.com/)
- Exemplo do Flickr (https://www.flickr.com/)
- Exemplo do Foursquare (https://foursquare.com/), exemplo
- Exemplo de Frappe (https://github.com/frappe/frappe)
- Exemplo de freelancer (https://www.freelancer.com/)
- Exemplo de gênio (http://genius.com/)
- Exemplo do GitHub (https://github.com/), exemplo com cliente HTTP OkHttp
- Exemplo do Google (https://www.google.com/), exemplo com Async Http Client, exemplo Revoke, exemplo com PKCEE
- Exemplo de HeadHunter ХэдХантер (https://hh.ru/)
- Exemplo HiOrg-Server (https://www.hiorg-server.de/)
- Exemplo Imgur (http://imgur.com/)
- Exemplo do Instagram (https://www.instagram.com/)
- Exemplo de Kaixin心网 (http://www.kaixin001.com/)
- Exemplo de Kakao (https://kakao.com/)
- Exemplo de Keycloak (https://www.keycloak.org/)
- Exemplo do LinkedIn (https://www.linkedin.com/), exemplo, exemplo com escopos personalizados
- Exemplo Mail.Ru (https://mail.ru/), exemplo com cliente HTTP Async Ning
- Exemplo MediaWiki (https://www.mediawiki.org/)
- Exemplo de Meetup (https://www.meetup.com/), exemplo
- Exemplo do Microsoft Azure Active Directory (Azure AD) (http://azure.microsoft.com/)
- Exemplo do Microsoft Azure Active Directory (Azure AD) 2.0 (http://azure.microsoft.com/)
- Exemplo do Microsoft Live (https://login.live.com/)
- Exemplo de desajuste (http://misfit.com/)
- Exemplo NAVER (http://www.naver.com/)
- Exemplo de Odnoklassniki Одноклассники (http://ok.ru/)
- Exemplo Polar (https://www.polar.com/)
- Exemplo do Pinterest (https://www.pinterest.com/)
- Exemplo de 500px (https://500px.com/)
- Exemplo de Renren (http://renren.com/)
- Exemplo do Salesforce (https://www.salesforce.com/), exemplo com cliente HTTP Async Ning
- Sina (http://www.sina.com.cn/ http://weibo.com/login.php) exemplo, exemplo
- Exemplo Skyrock (http://skyrock.com/)
- Exemplo de folga (https://slack.com/)
- Exemplo StackExchange (http://stackexchange.com/)
- The Things Network (v1-staging e v2-preview) (https://www.thethingsnetwork.org/) exemplo v1, exemplo v2 preview
- Exemplo do Trello (https://trello.com/)
- Exemplo do Tumblr (https://www.tumblr.com/)
- Exemplo TUT.BY (http://www.tut.by/)
- Exemplo do Twitter (https://twitter.com/)
- Exemplo de uCoz (https://www.ucoz.com/)
- Exemplo de Viadeo (http://viadeo.com/)
- Exemplo VK ВКонтакте (http://vk.com/), exemplo Concessão de credenciais de cliente, exemplo com cliente HTTP externo
- Exemplo de Wunderlist (https://www.wunderlist.com/)
- Exemplo Xero (https://www.xero.com/)
- Exemplo XING (https://www.xing.com/)
- Exemplo do Yahoo (https://www.yahoo.com/), exemplo
- verifique a pasta de exemplos
Pequeno e modular
O código do ScribeJava é pequeno (cerca de 1k LOC) e simples de entender. Não há hacks espertinhos ou "inteligentes" aqui. Você pode usar apenas módulos maven 'core' ou 'with apis'
Pronto para Android
Funciona imediatamente com aplicativos Android(TM).
Estável e à prova de balas
Boa cobertura de teste para mantê-lo protegido contra danos.
Quando algo ruim realmente acontece, as mensagens de erro significativas do ScribeJava dirão exatamente o que deu errado, quando e onde.
Retire-o do Maven Central!
Você pode extrair o ScribeJava do repositório maven central, basta adicioná-los ao seu arquivo pom.xml :
< dependency >
< groupId >com.github.scribejava</ groupId >
< artifactId >scribejava-apis</ artifactId >
< version >8.3.3</ version >
</ dependency >
E caso você precise apenas de classes principais (é isso, sem nenhum código específico de API externa (FB, VK, GitHub, Google etc), você pode extrair apenas o artefato 'principal'.
< dependency >
< groupId >com.github.scribejava</ groupId >
< artifactId >scribejava-core</ artifactId >
< version >8.3.3</ version >
</ dependency >
Como posso ajudar o ScribeJava
Em primeiro lugar, Pull Requests são bem-vindos, a segunda opção são as doações.
Quando o ScribeJava oferecerá suporte a XXX (novo RFC, funcionalidade personalizada, nova API etc.)
Quando você enviará a solicitação pull. Esse é o caminho para a maioria das mudanças aqui. Ou você pode pedir a alguém para fazer o trabalho remunerado para você. Em alguns casos, quando estou interessado em mudanças (técnicas ou financeiras), posso eu mesmo implementar a solicitação.
Consultoria paga
Se você ou sua empresa depende do Scribejava e precisa de alguma melhoria específica ou novo recurso não implementado atualmente no Scribejava, considere entrar em contato comigo sobre um trabalho remunerado.
Começando em menos de 2 minutos
Verifique a página de primeiros passos e comece a arrasar! Leia o FAQ antes de criar um problema :)
Algumas informações e respostas úteis que você pode encontrar no wiki
Além disso, lembre-se de ler o fantástico tutorial que @akoskm escreveu para integrar facilmente um aplicativo do lado do servidor com uma API (neste caso, Twitter).
Questões?
Sinta-se à vontade para nos enviar um e-mail ou criar um problema aqui mesmo no github.com
Garfos
Se você tiver um garfo útil que deveria estar listado lá, entre em contato conosco