مرحبًا بك في منزل ScribeJava، عميل OAuth البسيط Java lib!
لماذا استخدام ScribeJava؟
ميت بسيط
من قال أن OAuth/OAuth2 كان صعبًا؟ يعد تكوين ScribeJava أمرًا سهلاً للغاية حيث يمكن لجدتك القيام بذلك ! تحقق من ذلك:
OAuthService service = new ServiceBuilder ( YOUR_CLIENT_ID )
. apiSecret ( YOUR_CLIENT_SECRET )
. build ( LinkedInApi20 . instance ());
هذا السطر الفردي (أسطر جديدة مضافة لسهولة القراءة) هو الشيء الوحيد الذي تحتاجه لتكوين ScribeJava باستخدام OAuth API الخاص بـ LinkedIn على سبيل المثال.
أمثلة العمل القابلة للتنفيذ موجودة هنا الاستخدام الشائع: example
Threadsafe
اضغط على ScribeJava بقوة وباستخدام العديد من المواضيع التي تريدها.
جافا 7 متوافق
هذا كل شيء. يمكنك استخدامه في البيئات القديمة وفي تطبيقات Android. ملاحظة: للتجميع من المصادر، ستحتاج إلى Java 9 أو أحدث
غير متزامن وعملاء HTTP الآخرين
يدعم ScribeJava العديد من عملاء HTTP الجاهزين:
- مثال على عميل ning async http 1.9.x (وحدة maven scribejava-httpclient-ning)
- مثال Async Http Client 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 الجاهزة
- مثال أسانا (https://asana.com/).
- مثال تلقائي (https://www.automatic.com/).
- مثال أويبر (http://www.aweber.com/).
- مثال على الصندوق (https://www.box.com/).
- مثال Dataporten (https://docs.dataporten.no/).
- مثال على Digg (http://digg.com/).
- مثال على الخلاف (https://discordapp.com/).
- دكتوراه في العمل (https://www.doktornarabote.ru/)
- مثال على Dropbox (https://www.dropbox.com/).
- مثال على موقع Etsy (https://www.etsy.com/).
- مثال Facebook (https://www.facebook.com/)، مثال مع عميل Async Apache HTTP، مثال مع عميل Async Ning HTTP
- مثال فيتبيت (https://www.fitbit.com/).
- مثال على فليكر (https://www.flickr.com/).
- شخصيات قصص الابطال الخارقين (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/)، مثال مع Async Http Client، مثال إبطال، مثال مع PKCEE
- مثال على HeadHunter ХэдХанter (https://hh.ru/).
- مثال HiOrg-Server (https://www.hiorg-server.de/).
- مثال Imgur (http://imgur.com/).
- مثال على إنستغرام (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/)، مثال مع Async Ning HTTP Client
- مثال ميدياويكي (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/).
- مثال غير مناسب (http://misfit.com/).
- مثال NAVER (http://www.naver.com/).
- مثال Odnoklassniki Одноклассники (http://ok.ru/)
- مثال قطبي (https://www.polar.com/).
- مثال على موقع Pinterest (https://www.pinterest.com/).
- مثال 500 بكسل (https://500px.com/).
- مثال رينرين (http://renren.com/).
- مثال Salesforce (https://www.salesforce.com/)، مثال مع Async Ning HTTP Client
- سينا (http://www.sina.com.cn/ http://weibo.com/login.php) مثال، مثال
- مثال Skyrock (http://skyrock.com/).
- مثال على سلاك (https://slack.com/).
- مثال StackExchange (http://stackexchange.com/).
- شبكة الأشياء (v1-staging وv2-preview) (https://www.thethingsnetwork.org/) مثال v1، مثال معاينة v2
- مثال على Trello (https://trello.com/).
- مثال تمبلر (https://www.tumblr.com/).
- مثال TUT.BY (http://www.tut.by/).
- تويتر (https://twitter.com/) مثال
- مثال uCoz (https://www.ucoz.com/).
- مثال فياديو (http://viadeo.com/).
- مثال VK ВКонтакте (http://vk.com/)، مثال على منح بيانات اعتماد العميل، مثال على عميل HTTP الخارجي
- مثال Wunderlist (https://www.wunderlist.com/).
- مثال زيرو (https://www.xero.com/).
- مثال XING (https://www.xing.com/).
- ياهو (https://www.yahoo.com/) مثال، مثال
- تحقق من مجلد الأمثلة
صغيرة وحدات
كود ScribeJava صغير (حوالي 1 كيلو LOC) وسهل الفهم. لا توجد حيل ذكية أو "ذكية" هنا. يمكنك فقط استخدام الوحدات النمطية المخضرمة "الأساسية" أو "مع واجهة برمجة التطبيقات".
أندرويد جاهز
يعمل خارج الصندوق مع تطبيقات 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 >
وفي حالة احتياجك للفئات الأساسية فقط (هذا كل شيء، بدون أي كود محدد لواجهة برمجة التطبيقات الخارجية (FB، VK، GitHub، Google وما إلى ذلك)، يمكنك سحب قطعة أثرية "أساسية" فقط.
< dependency >
< groupId >com.github.scribejava</ groupId >
< artifactId >scribejava-core</ artifactId >
< version >8.3.3</ version >
</ dependency >
كيف يمكنني مساعدة ScribeJava
أولاً، نرحب بطلبات السحب، والخيار الثاني هو التبرعات.
متى سيدعم ScribeJava XXX (RFC الجديد، والوظائف المخصصة، وواجهة برمجة التطبيقات الجديدة، وما إلى ذلك)؟
عندما سوف ترسل طلب السحب. هذا هو الطريق لأغلبية التغييرات هنا. أو يمكنك أن تطلب من شخص ما أن يقوم بالوظيفة مدفوعة الأجر نيابةً عنك. في بعض الحالات، عندما أكون مهتمًا بإجراء تغييرات (تقنيًا أو ماليًا)، يمكنني تنفيذ الطلب بنفسي.
استشارات مدفوعة الأجر
إذا كنت أنت أو عملك يعتمد على Scribejava وتحتاج إلى أي تحسين محدد أو ميزة جديدة غير مطبقة حاليًا في Scribejava، ففكر في الاتصال بي بشأن وظيفة مدفوعة الأجر.
البدء في أقل من دقيقتين
تحقق من صفحة البدء وابدأ بالتأرجح! يرجى قراءة الأسئلة الشائعة قبل إنشاء مشكلة :)
بعض المعلومات والإجابات المفيدة التي يمكنك العثور عليها على الويكي
تذكر أيضًا قراءة البرنامج التعليمي الرائع الذي كتبه @akoskm لدمج تطبيق من جانب الخادم بسهولة مع واجهة برمجة التطبيقات (تويتر في هذه الحالة).
أسئلة؟
لا تتردد في مراسلتنا عبر البريد الإلكتروني أو إنشاء مشكلة هنا على github.com
شوك
إذا كان لديك شوكة مفيدة ينبغي إدراجها هناك، فيرجى الاتصال بنا