Профиль пользователя заблокирован сроком с 23 мая 2017 г. и навсегда по причине: обход санкций модераторов, путем создания другого аккаунта
  • Как правильно вывести данные?

    @DanTheMan Автор вопроса
    sim3x: Решения проблемы
  • Как правильно вывести данные?

    @DanTheMan Автор вопроса
    sim3x: Питон 3 - не юзаю сейчас. Другой способ есть?
  • KeyError: 'access_token'?

    @DanTheMan Автор вопроса
    Сергей Горностаев: Весь код
    from oauth2client.service_account import ServiceAccountCredentials
        import requests, gspread
        import os
        import ast
        
        def authenticate_google_docs():
            f = open(os.path.join('Checkin.p12'), 'rb')
            SIGNED_KEY = f.read()
            f.close()
            scope = ['https://spreadsheets.google.com/feeds', 'https://docs.google.com/feeds']
            credentials = ServiceAccountCredentials('danylo.lian@gmail.com', SIGNED_KEY, scope)
        
            data = {
                'refresh_token' : '<refresh-token-copied>',
                'client_id' : '<client-id-copied>',
                'client_secret' : '<client-secret-copied>',
                'grant_type' : 'refresh_token',
            }
        
            r = requests.post('https://accounts.google.com/o/oauth2/token', data = data)
            credentials.access_token = ast.literal_eval(r.text)['access_token']
        
            gc = gspread.authorize(credentials)
            return gc
        
        gc = authenticate_google_docs()
        
        sh = gc.open_by_url('https://docs.google.com/spreadsheets/d/11WR6rwQhL4wUDN8I77ju_5rzZl8IglsUjtUDI6pZsAQ/edit#gid=0')
  • Как сделать такое меню для мобильной версии сайта?

    @DanTheMan
    Вам помощь нужна? Если да, то скажите, могу сделать похожее, но платно
  • Что означает и к чему это?

    @DanTheMan Автор вопроса
    Видишь там параметры функции и вызов присваивается мое переменной сначало
  • Что означает и к чему это?

    @DanTheMan Автор вопроса
    Смотри у меня есть модуль oauth2client.tools и там хранятся данные смотри, вот
    def run_flow(flow, storage, flags=None, http=None):
        """Core code for a command-line application.
    
        The ``run()`` function is called from your application and runs
        through all the steps to obtain credentials. It takes a ``Flow``
        argument and attempts to open an authorization server page in the
        user's default web browser. The server asks the user to grant your
        application access to the user's data. If the user grants access,
        the ``run()`` function returns new credentials. The new credentials
        are also stored in the ``storage`` argument, which updates the file
        associated with the ``Storage`` object.
    
        It presumes it is run from a command-line application and supports the
        following flags:
    
            ``--auth_host_name`` (string, default: ``localhost``)
               Host name to use when running a local web server to handle
               redirects during OAuth authorization.
    
            ``--auth_host_port`` (integer, default: ``[8080, 8090]``)
               Port to use when running a local web server to handle redirects
               during OAuth authorization. Repeat this option to specify a list
               of values.
    
            ``--[no]auth_local_webserver`` (boolean, default: ``True``)
               Run a local web server to handle redirects during OAuth
               authorization.
    
        The tools module defines an ``ArgumentParser`` the already contains the
        flag definitions that ``run()`` requires. You can pass that
        ``ArgumentParser`` to your ``ArgumentParser`` constructor::
    
            parser = argparse.ArgumentParser(
                description=__doc__,
                formatter_class=argparse.RawDescriptionHelpFormatter,
                parents=[tools.argparser])
            flags = parser.parse_args(argv)
    
        Args:
            flow: Flow, an OAuth 2.0 Flow to step through.
            storage: Storage, a ``Storage`` to store the credential in.
            flags: ``argparse.Namespace``, (Optional) The command-line flags. This
                   is the object returned from calling ``parse_args()`` on
                   ``argparse.ArgumentParser`` as described above. Defaults
                   to ``argparser.parse_args()``.
            http: An instance of ``httplib2.Http.request`` or something that
                  acts like it.
    
        Returns:
            Credentials, the obtained credential.
        """
        if flags is None:
            flags = argparser.parse_args()
        logging.getLogger().setLevel(getattr(logging, flags.logging_level))
        if not flags.noauth_local_webserver:
            success = False
            port_number = 0
            for port in flags.auth_host_port:
                port_number = port
                try:
                    httpd = ClientRedirectServer((flags.auth_host_name, port),
                                                 ClientRedirectHandler)
                except socket.error:
                    pass
                else:
                    success = True
                    break
            flags.noauth_local_webserver = not success
            if not success:
                print(_FAILED_START_MESSAGE)
    
        if not flags.noauth_local_webserver:
            oauth_callback = 'http://{host}:{port}/'.format(
                host=flags.auth_host_name, port=port_number)
        else:
            oauth_callback = client.OOB_CALLBACK_URN
        flow.redirect_uri = oauth_callback
        authorize_url = flow.step1_get_authorize_url()
    
        if not flags.noauth_local_webserver:
            import webbrowser
            webbrowser.open(authorize_url, new=1, autoraise=True)
            print(_BROWSER_OPENED_MESSAGE.format(address=authorize_url))
        else:
            print(_GO_TO_LINK_MESSAGE.format(address=authorize_url))
    
        code = None
        if not flags.noauth_local_webserver:
            httpd.handle_request()
            if 'error' in httpd.query_params:
                sys.exit('Authentication request was rejected.')
            if 'code' in httpd.query_params:
                code = httpd.query_params['code']
            else:
                print('Failed to find "code" in the query parameters '
                      'of the redirect.')
                sys.exit('Try running with --noauth_local_webserver.')
        else:
            code = input('Enter verification code: ').strip()
    
        try:
            credential = flow.step2_exchange(code, http=http)
        except client.FlowExchangeError as e:
            sys.exit('Authentication has failed: {0}'.format(e))
    
        storage.put(credential)
        credential.set_store(storage)
        print('Authentication successful.')
    
        return credential
  • Почему я получаю ошибку - ImportError: No module named httplib2?

    @DanTheMan Автор вопроса
    Вот оно выводит и у меня пип 3
    DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
    google-api-python-client (1.6.2)
    httplib2 (0.10.3)
    oauth2client (4.0.0)
    pip (9.0.1)
    pyasn1 (0.2.3)
    pyasn1-modules (0.0.8)
    rsa (3.4.2)
    setuptools (28.8.0)
    six (1.10.0)
    uritemplate (3.0.0)
  • Как сделать тест на HTML?

    @DanTheMan
    Это дело можно прокрутить с javascript
  • Как установить httplibs2?

    @DanTheMan Автор вопроса
    javedimka: такой вопрос, а как его установить?
  • Как установить httplibs2?

    @DanTheMan Автор вопроса
    javedimka: Как его написать?
  • Возможно ли сделать regex на javascript в файле формата csv?

    @DanTheMan Автор вопроса
    Нет, regex это значит допустим ты выбираешь слово и оно ищет слово допустим в строке