معرفی شرکت ها


django-google-api-1.0.1


Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر

توضیحات

a simple app to create workflow and save credentials fro Django
ویژگی مقدار
سیستم عامل -
نام فایل django-google-api-1.0.1
نام django-google-api
نسخه کتابخانه 1.0.1
نگهدارنده []
ایمیل نگهدارنده []
نویسنده Muhammad Usama Bin Liaqat
ایمیل نویسنده usama@digidiv.pk
آدرس صفحه اصلی https://bitbucket.org/digidiv-pk/django-google-api/src
آدرس اینترنتی https://pypi.org/project/django-google-api/
مجوز GPL License
.. image:: https://img.shields.io/badge/version-v1.0.1-blue.svg :target: https://pypi.org/project/django-google-api/ :alt: PyPI Version .. image:: https://img.shields.io/badge/license-GPL-blue :alt: GPL License .. image:: https://img.shields.io/badge/python-3.5%20%7C%203.6%20%7C%203.7-blue :alt: Platform & Version Support Installation ============ Installing from PyPI is as easy as doing: .. code-block:: bash pip install django-google-api Intigration =========== django-google-api is a library to use Google API with Django step:- 1 -------- create **credentials.json** file on DJango project Base Directory where your **manage.py** file exist | django-project | ├── django-project | │ ├── __init__.py | │ ├── settings.py | │ ├── urls.py | │ └── wsgi.py | ├── **credentials.json** | ├── manage.py | └── requirements.txt step:- 2 -------- Add the application to ``INSTALLED_APPS`` setting, for default ORM: .. code-block:: python INSTALLED_APPS = [ ... 'django_google.apps.DjangoGoogleConfig', ] step:- 3 -------- Google OAuth credentials set ``GOOGLE_CLIENT_SECRET_FILE`` and ``GOOGLE_AUTH_SCOPES`` in **setting.py** you can add scope of your choices .. code-block:: python GOOGLE_CLIENT_SECRET_FILE = os.path.join(BASE_DIR, 'credentials.json') GOOGLE_AUTH_SCOPES = [ 'https://www.googleapis.com/auth/userinfo.email', 'https://www.googleapis.com/auth/userinfo.profile', ] if you're using javascript authentication then add this line to your project also .. code-block:: python GOOGLE_CLIENT_ID = "xxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com" Usage: ====== **execute commands** .. code-block:: bash python manage.py makemigrations python manage.py migrate Create Views in **views.py** .. code-block:: python from django.shortcuts import reverse, redirect, render from django_google.flow import DjangoFlow,CLIENT_SECRET_FILE, SCOPES from django.http.response import JsonResponse from django.contrib.auth import get_user_model from django.conf import settings from django_google.models import GoogleAuth User = get_user_model() flow = DjangoFlow.from_client_secrets_file(client_secrets_file=CLIENT_SECRET_FILE, scopes=SCOPES) # Auto Redirect to Google Authentication URL (Using Without Javascript) def oAuthView(request): callback_url=reverse("oauth2callback") # callback Url (oAuth2CallBackView URL) return redirect(flow.get_auth_url(request, callback_url=callback_url)) # Google Authentication Call Back VIEW (Using Without Javascript) def oAuth2CallBackView(request): success_url = "/dashboard/" # redirection URL on Success reverse() can b use here creds = flow.get_credentails_from_response_url(response_url=request.build_absolute_uri()) userinfo = flow.get_userinfo(creds=creds) try: user = User.objects.get(email=userinfo['email']) except User.DoesNotExist: user = User.objects.create(email=userinfo['email'], username=userinfo['email'], first_name=userinfo['given_name'], last_name=userinfo['family_name'] ) finally: try: gauth = GoogleAuth.objects.get(user=user) except GoogleAuth.DoesNotExist: gauth = GoogleAuth.objects.create(user=user, creds=creds) # Return Response as you want or Redirect to some URL def oAuthJavascriptView(request): if request.is_ajax(): if request.method == "POST": code = request.POST.get('code') flow = DjangoFlow.from_client_secrets_file(client_secrets_file=CLIENT_SECRET_FILE, scopes=SCOPES) creds = flow.get_credentials_from_code(code=code, javascript_callback_url="https://example.org") userinfo = flow.get_userinfo(creds=creds) try: user = User.objects.get(email=userinfo['email']) except User.DoesNotExist: user = User.objects.create(email=userinfo['email'], username=userinfo['email'], first_name=userinfo['given_name'], last_name=userinfo['family_name'] ) finally: try: gauth = GoogleAuth.objects.get(user=user) except GoogleAuth.DoesNotExist: gauth = GoogleAuth.objects.create(user=user, creds=creds) # return JSON Response with Status Code of 200 for success and 400 for errors return JsonResponse({}, status=200) else: context = { "client_id": getattr(settings, 'GOOGLE_CLIENT_ID', None), "scopes": " ".join(SCOPES) } # Render HTML page that havs Google Authentication Page with Javasccript return render(request, 'login.html', context) Create Views in **urls.py** .. code-block:: python from django.urls import path from .views import oAuthView, oAuth2CallBackView, oAuthJavascriptView urlpatterns = [ path('', oAuthJavascriptView, name="login"), path('auth/', oAuthView, name="auth"), path('oauth2callback/', oAuth2CallBackView, name="oauth2callback"), ] **login.html** file create Button of your own choice for google auth .. code-block:: html <script src="https://apis.google.com/js/api:client.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script> <button id="g-auth-btn">Sign in with <b>Google</b></button> <script> function startApp() { gapi.load('auth2', function(){ auth2 = gapi.auth2.init({ client_id: '{{ client_id }}', cookiepolicy: 'single_host_origin', }); }); } $(document).on("click", "#g-auth-btn", ()=>{ auth2.grantOfflineAccess({ prompt:"consent", scope: '{{ scopes }}' }).then((signInCallback)=>{ $.ajax({ type:'post', data:signInCallback, cache: false, headers: {"X-CSRFToken": $.cookie('csrftoken')}, success: function (response) { console.log(response); if(!!response.redirect){ window.location = response.redirect } }, error: function (error) { console.log(error); if(!!error.responseJSON.redirect){ window.location = error.responseJSON.redirect } } }); }); }); startApp(); </script>


نحوه نصب


نصب پکیج whl django-google-api-1.0.1:

    pip install django-google-api-1.0.1.whl


نصب پکیج tar.gz django-google-api-1.0.1:

    pip install django-google-api-1.0.1.tar.gz