-1

我正在尝试使用控制台中的参数来使用 --auth_local_webserver、--auth_host_port,这些是从 OAUTH2 获取凭据所必需的,但我无法使其工作

我以这种方式使用控制台 python google\dev_appserver.py --auth_local_webserver=localhost --auth_host_port project/

我的目录是这个 Project/app.main Project/Handlers/VideoTesting

VideoTesting 是我用来处理 gflags 的那个,我真的不太了解这个,我读了很多,

if FLAGS.auth_local_webserver:    

  success = False
  port_number = 0
    for port in FLAGS.auth_host_port:
      port_number = port
      debug.response.write(str(port_number))

      try:
        httpd = ClientRedirectServer((FLAGS.auth_host_name, port),
                                 ClientRedirectHandler)
        debug.response.write('what')
      except socket.error, e:

        pass
      else:
        success = True
        break
    FLAGS.auth_local_webserver = success
  if FLAGS.auth_local_webserver:
     oauth_callback = 'http://%s:%s/' % (FLAGS.auth_host_name, port_number)
  else:
     oauth_callback = 'oob'
  authorize_url = flow.step1_get_authorize_url(oauth_callback)

FLAGS = gflags.FLAGS

gflags.DEFINE_boolean('auth_local_webserver', True,
                  ('Run a local web server to handle redirects during '
                   'OAuth authorization.'))

gflags.DEFINE_string('auth_host_name', 'localhost',
                 ('Host name to use when running a local web server to '
                  'handle redirects during OAuth authorization.'))

gflags.DEFINE_multi_int('auth_host_port', [8080, 8090],
                    ('Port to use when running a local web server to '
                     'handle redirects during OAuth authorization.'))
4

1 回答 1

0

您显示的gflags.DEFINE...电话说您指定了三个标志:

  1. auth_local_webserver -- 默认为 true 的布尔值
  2. auth_host_name -- 默认为“localhost”的字符串
  3. auth_host_port -- 默认为 [8080, 8090] 的整数列表

但是你说你正在使用......:

--auth_local_webserver=localhost --auth_host_port

即,将布尔值设置为字符串 (?!),将整数列表设置为空 (?!)。我觉得这很令人困惑!究竟是什么,您需要从上面的三个默认值中进行更改,为什么?如果默认值没问题,就不要指定标志并让它们默认,不是吗?

接下来,我不确定参数值应该在哪里被解析为指定的标志——在那个神秘的匿名 Python 代码片段中没有这样的初始化(.py它是什么文件的一部分,确切地说?以及其他部分除了名称之外,您还对我们隐藏了该文件吗?)您必须隐藏其他部分,因为您显示的文件使用了debug它在任何地方都没有定义的裸名,它只是突然出现。然后一旦它最终被计算authorize_url出来,它就会突然结束而没有使用那个 url...

接下来,缩进被打破——具体来说,port_number = 0后面是for port缩进 2 个空格的 a;如果您将此代码提供给解释器,您将得到一个SyntaxError.

这提醒了我,你从来没有告诉我们你期望什么以及你观察到什么——“不能让它工作”并没有告诉我们是如何不工作的,所以你让我们基本上不可能帮助你除了在您报告的匿名代码片段中列举明显的错误和遗漏之外。(而且我在这样一个问题的枚举中已经超出了我的配额,所以我现在要停在这里!)

那么您能否编辑您的 Q 以澄清这些要点中的每一点......?!

于 2015-02-07T23:10:42.127 回答