// حقوق الطبع والنشر 2014 شركة جوجل جميع الحقوق محفوظة. // // مرخص تحت رخصة أباتشي، الإصدار 2.0 ("الترخيص")؛ // لا يجوز لك استخدام هذا الملف إلا وفقا للترخيص. // تستطيع الحصول على نسخة من الرخصة في // // المتشعب: //www.apache. ORG / تراخيص / رخصة 2.0 // // ما لم يقتضيه القانون الساري المفعول أو المتفق عليها في الكتابة، والبرمجيات // زعت بموجب يتم توزيع الترخيص على أساس "كما هي" أساس، // دون ضمانات أو شروط من أي نوع، سواء كانت صريحة أو ضمنية. // راجع رخصة للأذونات الحكم لغة معينة و // القيود تحت رخصة. حزمة dfp.axis.auth. استيراد com.google.api.ads.common.lib.conf.ConfigurationLoadException. استيراد الاستيراد، استيراد com.google.api.ads.dfp.axis.v201408.Network. استيراد com.google.api.ads.dfp.axis.v201408.NetworkServiceInterface. استيراد com.google.api.ads.dfp.lib.client.DfpSession. استيراد com.google.api.client.auth.oauth2.Credential. استيراد com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow. استيراد com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeTokenRequest. com.google.api.client.googleapis.auth.oauth2.GoogleTokenResponse الاستيراد، استيراد com.google.api.client.http.javanet.NetHttpTransport. استيراد com.google.api.client.json.jackson2.JacksonFactory. استيراد com.google.api.client.util.store.DataStoreFactory. استيراد com.google.api.client.util.store.MemoryDataStoreFactory. com.google.common.collect.Lists الاستيراد، استيراد java.io.BufferedReader. استيراد java.io.IOException. استيراد java.io.InputStreamReader. / ** * يوضح هذا المثال كيفية إنشاء كائن الاعتمادات من الصفر.
* هذا المثال * لا * يعني ليتم استخدامها مع أمثلة أخرى لدينا، ولكن يظهر * كيف يمكن استخدام المكتبات العامة OAuth2 لإضافة OAuth2 إلى * التطبيقات الموجودة لديك.
*
* للحصول على بديل لحسابات الخدمة، والتطبيقات المثبتة، أو على شبكة الإنترنت * التطبيقات التي لن تحتاج إلى عدة مستخدمين تسجيل الدخول باستخدام * OfflineCredentials لتوليد OAuth2 للتحديث * الاعتماد بدلا من ذلك سيكون أسهل بكثير. * آدم * مؤلف Rogal * / AdvancedCreateCredentialFromScratch الطبقة الجمهور { الخاص ثابت النهائي SCOPE سلسلة = "https://www.googleapis.com/auth/dfp". // URL هذا الاستدعاء سوف يسمح لك لنسخ رمز من الشاشة النجاح. // هذا يجب أن يطابق واحد المرتبطة ID العميل الخاص بك. خاص ثابت نهائي CALLBACK_URL سلسلة = "جرة: IETF: WG: أوث: 2.0: OOB". // إذا لم يكن لديك هوية العميل أو السري، يرجى إنشاء واحد في // حدة API: https://code.google.com/apis/console#access الخاص ثابت النهائي CLIENT_ID سلسلة = "INSERT_CLIENT_ID_HERE". خاص ثابت نهائي CLIENT_SECRET سلسلة = "INSERT_CLIENT_SECRET_HERE". // المستخدم الحالي الذي يتم توثيقه. هذا هو عادة مفتاح أساسي // أنت تعرف نفسك أنك سوف رجوع إليه لاحقا في التعليمات البرمجية عند // يمكنك استرجاع الاعتماد لهذا المستخدم. خاصة ثابتة نهائي USER_ID سلسلة = "INSERT_USER_ID_HERE". الخاص يأذن الفراغ ثابت (DataStoreFactory storeFactory، سلسلة رقم العضوية) رميات استثناء {// اعتمادا على التطبيق الخاص بك، قد يكون هناك طرق أكثر ملاءمة من // أداء تدفق التفويض (مثل على بريمج)، انظر // HTTPS: // مدونة. google.com / ع / جوجل- API- جافا العميل / ويكي / OAuth2 # Authorization_Code_Flow // لمزيد من المعلومات. GoogleAuthorizationCodeFlow authorizationFlow = GoogleAuthorizationCodeFlow.Builder جديدة (NetHttpTransport جديدة ()، JacksonFactory جديدة ()، CLIENT_ID، CLIENT_SECRET، Lists.newArrayList (SCOPE)) .setDataStoreFactory (storeFactory) // تعيين نوع الوصول إلى متصل بحيث يمكن أن يكون الرمز المميز منتعشة. // افتراضيا، فإن تحديث المكتبة تلقائيا الرموز عندما // يمكن، ولكن هذا يمكن إيقاف من خلال وضع // api.dfp.refreshOAuth2Token = كاذبة في ملف ads.properties الخاص بك. . .setAccessType ("حاليا") بناء ()؛ سلسلة authorizeUrl = authorizationFlow.newAuthorizationUrl () setRedirectUri (CALLBACK_URL). البناء ()؛ System.out.println ("لصق هذا العنوان في المتصفح الخاص بك: \ ن" + + authorizeUrl '\ ن')؛ // انتظر رمز ترخيص. System.out.println ("اكتب الرمز الذي تلقيته هنا:")؛ سلسلة authorizationCode = BufferedReader الجديد (InputStreamReader الجديد (System.in)) ريدلاين ()؛ // تخويل الرمز المميز OAuth2. GoogleAuthorizationCodeTokenRequest tokenRequest = authorizationFlow.newTokenRequest (authorizationCode). tokenRequest.setRedirectUri (CALLBACK_URL). GoogleTokenResponse tokenResponse = tokenRequest.execute ()؛ // تخزين الاعتماد للمستخدم. authorizationFlow.createAndStoreCredential (tokenResponse، رقم العضوية). } الخاص ثابت DfpSession createDfpSession (DataStoreFactory storeFactory، سلسلة رقم العضوية) يلقي IOException، ValidationException، ConfigurationLoadException {// إنشاء GoogleCredential مع الحد الأدنى من المعلومات. GoogleAuthorizationCodeFlow authorizationFlow = GoogleAuthorizationCodeFlow.Builder جديدة (NetHttpTransport جديدة ()، JacksonFactory جديدة ()، CLIENT_ID، CLIENT_SECRET، Lists.newArrayList (SCOPE)) .setDataStoreFactory (storeFactory). البناء ()؛ // تحميل الاعتماد. الاعتماد الاعتماد = authorizationFlow.loadCredential (رقم العضوية). // أنشئ DfpSession. العودة DfpSession.Builder جديدة () .fromFile () .withOAuth2Credential (الاعتماد). البناء ()؛} runExample الفراغ ثابت الجمهور (DfpServices dfpServices، جلسة DfpSession) رميات استثناء {// الحصول على NetworkService. NetworkServiceInterface networkService = dfpServices.get (الدورة، NetworkServiceInterface.class). // يحصل على الشبكة الحالية. شبكة شبكة networkService.getCurrentNetwork = ()؛ System.out.printf ("الشبكة الحالية لديها قانون شبكة \"٪ ق \ "وعرض اسم \"٪ ق \، network.getNetworkCode ()، network.getDisplayName () "\ ن ")؛ } ساكنة باطلة الرئيسي (الخيط [سائط]) رميات استثناء العامة {إذا كان (CLIENT_ID.equals ("INSERT_CLIENT_ID_HERE") || CLIENT_SECRET.equals ("INSERT_CLIENT_SECRET_HERE")) {رمي IllegalArgumentException الجديد ("الرجاء إدخال معرفات العميل الخاص بك أو سرا "+" انظر https://code.google.com/apis/console#access ")؛ } // ويوصى بشدة أن استخدام مخزن بيانات الاعتماد الخاصة بك في // تطبيق لتخزين بيانات الاعتماد لكل مستخدم. // انظر: https://code.google.com/p/google- العميل أوث-جافا- / ويكي / OAuth2 DataStoreFactory storeFactory = MemoryDataStoreFactory جديدة ()؛ // تخويل وتخزين الاعتماد الخاصة بك. يأذن (storeFactory، USER_ID). // إنشاء DfpSession من مخزن بيانات الاعتماد. سوف تفعل عادة هذا // في اعتراضية بريمج لتطبيق ويب أو في موضوع منفصل // التطبيق دون اتصال. DfpSession dfpSession = createDfpSession (storeFactory، USER_ID). DfpServices dfpServices = DfpServices جديدة ()؛ runExample (dfpServices، dfpSession). }}
{"التبعيات": {"المتزامن-المستمع": "0.4.5"}، "صفا": "Node.js المتزامن التعريف وحدة المعالجة المركزية"، "devDependencies": {"القهوة النصي": "آخر"}، "محركات ": {" العقدة ":"> = 0.8.0 "}،" موقع ":" https://github.com/ConradIrwin/async-محة "،" تراخيص ": [{" اكتب ":" MIT "، "URL": "https://github.com/ConradIrwin/async نبذة عن"}]، "الرئيسي": "ليب / index.js"، "مشرفون": [{"البريد الإلكتروني": "conrad@bugsnag.com "،" اسم ":" كونراد اروين "}]،" اسم ":" المتزامن-محة "،" مستودع ": {" اكتب ":" بوابة "،" URL ":" https://github.com/ConradIrwin / المتزامن نبذة عن "}،" مخطوطات ": {" prepublish ":" القهوة -c -O SRC ليب / * "}،" الإصدار ":" 0.2.2 "}
* هذا المثال * لا * يعني ليتم استخدامها مع أمثلة أخرى لدينا، ولكن يظهر * كيف يمكن استخدام المكتبات العامة OAuth2 لإضافة OAuth2 إلى * التطبيقات الموجودة لديك.
*
* للحصول على بديل لحسابات الخدمة، والتطبيقات المثبتة، أو على شبكة الإنترنت * التطبيقات التي لن تحتاج إلى عدة مستخدمين تسجيل الدخول باستخدام * OfflineCredentials لتوليد OAuth2 للتحديث * الاعتماد بدلا من ذلك سيكون أسهل بكثير. * آدم * مؤلف Rogal * / AdvancedCreateCredentialFromScratch الطبقة الجمهور { الخاص ثابت النهائي SCOPE سلسلة = "https://www.googleapis.com/auth/dfp". // URL هذا الاستدعاء سوف يسمح لك لنسخ رمز من الشاشة النجاح. // هذا يجب أن يطابق واحد المرتبطة ID العميل الخاص بك. خاص ثابت نهائي CALLBACK_URL سلسلة = "جرة: IETF: WG: أوث: 2.0: OOB". // إذا لم يكن لديك هوية العميل أو السري، يرجى إنشاء واحد في // حدة API: https://code.google.com/apis/console#access الخاص ثابت النهائي CLIENT_ID سلسلة = "INSERT_CLIENT_ID_HERE". خاص ثابت نهائي CLIENT_SECRET سلسلة = "INSERT_CLIENT_SECRET_HERE". // المستخدم الحالي الذي يتم توثيقه. هذا هو عادة مفتاح أساسي // أنت تعرف نفسك أنك سوف رجوع إليه لاحقا في التعليمات البرمجية عند // يمكنك استرجاع الاعتماد لهذا المستخدم. خاصة ثابتة نهائي USER_ID سلسلة = "INSERT_USER_ID_HERE". الخاص يأذن الفراغ ثابت (DataStoreFactory storeFactory، سلسلة رقم العضوية) رميات استثناء {// اعتمادا على التطبيق الخاص بك، قد يكون هناك طرق أكثر ملاءمة من // أداء تدفق التفويض (مثل على بريمج)، انظر // HTTPS: // مدونة. google.com / ع / جوجل- API- جافا العميل / ويكي / OAuth2 # Authorization_Code_Flow // لمزيد من المعلومات. GoogleAuthorizationCodeFlow authorizationFlow = GoogleAuthorizationCodeFlow.Builder جديدة (NetHttpTransport جديدة ()، JacksonFactory جديدة ()، CLIENT_ID، CLIENT_SECRET، Lists.newArrayList (SCOPE)) .setDataStoreFactory (storeFactory) // تعيين نوع الوصول إلى متصل بحيث يمكن أن يكون الرمز المميز منتعشة. // افتراضيا، فإن تحديث المكتبة تلقائيا الرموز عندما // يمكن، ولكن هذا يمكن إيقاف من خلال وضع // api.dfp.refreshOAuth2Token = كاذبة في ملف ads.properties الخاص بك. . .setAccessType ("حاليا") بناء ()؛ سلسلة authorizeUrl = authorizationFlow.newAuthorizationUrl () setRedirectUri (CALLBACK_URL). البناء ()؛ System.out.println ("لصق هذا العنوان في المتصفح الخاص بك: \ ن" + + authorizeUrl '\ ن')؛ // انتظر رمز ترخيص. System.out.println ("اكتب الرمز الذي تلقيته هنا:")؛ سلسلة authorizationCode = BufferedReader الجديد (InputStreamReader الجديد (System.in)) ريدلاين ()؛ // تخويل الرمز المميز OAuth2. GoogleAuthorizationCodeTokenRequest tokenRequest = authorizationFlow.newTokenRequest (authorizationCode). tokenRequest.setRedirectUri (CALLBACK_URL). GoogleTokenResponse tokenResponse = tokenRequest.execute ()؛ // تخزين الاعتماد للمستخدم. authorizationFlow.createAndStoreCredential (tokenResponse، رقم العضوية). } الخاص ثابت DfpSession createDfpSession (DataStoreFactory storeFactory، سلسلة رقم العضوية) يلقي IOException، ValidationException، ConfigurationLoadException {// إنشاء GoogleCredential مع الحد الأدنى من المعلومات. GoogleAuthorizationCodeFlow authorizationFlow = GoogleAuthorizationCodeFlow.Builder جديدة (NetHttpTransport جديدة ()، JacksonFactory جديدة ()، CLIENT_ID، CLIENT_SECRET، Lists.newArrayList (SCOPE)) .setDataStoreFactory (storeFactory). البناء ()؛ // تحميل الاعتماد. الاعتماد الاعتماد = authorizationFlow.loadCredential (رقم العضوية). // أنشئ DfpSession. العودة DfpSession.Builder جديدة () .fromFile () .withOAuth2Credential (الاعتماد). البناء ()؛} runExample الفراغ ثابت الجمهور (DfpServices dfpServices، جلسة DfpSession) رميات استثناء {// الحصول على NetworkService. NetworkServiceInterface networkService = dfpServices.get (الدورة، NetworkServiceInterface.class). // يحصل على الشبكة الحالية. شبكة شبكة networkService.getCurrentNetwork = ()؛ System.out.printf ("الشبكة الحالية لديها قانون شبكة \"٪ ق \ "وعرض اسم \"٪ ق \، network.getNetworkCode ()، network.getDisplayName () "\ ن ")؛ } ساكنة باطلة الرئيسي (الخيط [سائط]) رميات استثناء العامة {إذا كان (CLIENT_ID.equals ("INSERT_CLIENT_ID_HERE") || CLIENT_SECRET.equals ("INSERT_CLIENT_SECRET_HERE")) {رمي IllegalArgumentException الجديد ("الرجاء إدخال معرفات العميل الخاص بك أو سرا "+" انظر https://code.google.com/apis/console#access ")؛ } // ويوصى بشدة أن استخدام مخزن بيانات الاعتماد الخاصة بك في // تطبيق لتخزين بيانات الاعتماد لكل مستخدم. // انظر: https://code.google.com/p/google- العميل أوث-جافا- / ويكي / OAuth2 DataStoreFactory storeFactory = MemoryDataStoreFactory جديدة ()؛ // تخويل وتخزين الاعتماد الخاصة بك. يأذن (storeFactory، USER_ID). // إنشاء DfpSession من مخزن بيانات الاعتماد. سوف تفعل عادة هذا // في اعتراضية بريمج لتطبيق ويب أو في موضوع منفصل // التطبيق دون اتصال. DfpSession dfpSession = createDfpSession (storeFactory، USER_ID). DfpServices dfpServices = DfpServices جديدة ()؛ runExample (dfpServices، dfpSession). }}
{"التبعيات": {"المتزامن-المستمع": "0.4.5"}، "صفا": "Node.js المتزامن التعريف وحدة المعالجة المركزية"، "devDependencies": {"القهوة النصي": "آخر"}، "محركات ": {" العقدة ":"> = 0.8.0 "}،" موقع ":" https://github.com/ConradIrwin/async-محة "،" تراخيص ": [{" اكتب ":" MIT "، "URL": "https://github.com/ConradIrwin/async نبذة عن"}]، "الرئيسي": "ليب / index.js"، "مشرفون": [{"البريد الإلكتروني": "conrad@bugsnag.com "،" اسم ":" كونراد اروين "}]،" اسم ":" المتزامن-محة "،" مستودع ": {" اكتب ":" بوابة "،" URL ":" https://github.com/ConradIrwin / المتزامن نبذة عن "}،" مخطوطات ": {" prepublish ":" القهوة -c -O SRC ليب / * "}،" الإصدار ":" 0.2.2 "}
تعليقات
إرسال تعليق