Oauth+;Aeoid&x2B;Python+;谷歌应用程序引擎&x2B;谷歌文档

Oauth+;Aeoid&x2B;Python+;谷歌应用程序引擎&x2B;谷歌文档,python,google-app-engine,oauth,google-docs,Python,Google App Engine,Oauth,Google Docs,我正试图在谷歌应用程序引擎中为我的校报完成一个故事分配系统。它将跟踪作家的截止日期,允许作家挑选故事,并对每周的故事进行“一目了然”的查看。我和我的合作伙伴正在尝试将它与我们的报纸谷歌应用程序安装完全集成。哦,我们必须使用三条腿的Oauth,因为我们没有Google Apps Premier 在那次努力中,我偶然发现了Aeoid,并且能够按照说明使联邦登录工作。很酷 我遇到的麻烦是使用Oauth获取google文档的用户列表。我在这里设置了一个测试页面:mustrun.cornellsun.co

我正试图在谷歌应用程序引擎中为我的校报完成一个故事分配系统。它将跟踪作家的截止日期,允许作家挑选故事,并对每周的故事进行“一目了然”的查看。我和我的合作伙伴正在尝试将它与我们的报纸谷歌应用程序安装完全集成。哦,我们必须使用三条腿的Oauth,因为我们没有Google Apps Premier

在那次努力中,我偶然发现了Aeoid,并且能够按照说明使联邦登录工作。很酷

我遇到的麻烦是使用Oauth获取google文档的用户列表。我在这里设置了一个测试页面:mustrun.cornellsun.com/test。它给了我错误——我已经在这封邮件的底部复制了它们。我不知道这是否与我的消费者机密有关(我应该使用从google marketplace获得的密钥?还是应该使用从管理域页面获得的密钥?)。现在我正在使用从管理域页面获得的密钥

更复杂的是,实际的appspot域是mustrun2sun[]。appspot[太新了,不能发布多个链接].com,但我在google apps中设置了它,以便只有来自我的域的用户才能登录,并将应用部署在我的域上。(应用程序部署为
必须[]运行[]。corn[]ellsun[].[]com
&所有东西都是这样指它的,即使在管理域中也是如此。)

我正在使用GDClient 2.0类,所以我很确定一切都应该按计划进行。。。i、 我没有使用旧的服务材料或任何东西。我使用了
htt[]p://[]/k[]ing[]yo bachi.blog[]spot.c[]om/2010/05/gaego[]ogleoauth.ht[]ml
作为我的Oauth“舞蹈”的模板,因为谷歌的例子已经过时了&我认为使用了旧的谷歌数据1.0库

当我转到我的测试页面时,我得到的错误是

Traceback (most recent call last):
  File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 511, in __call__
    handler.get(*groups)
  File "/base/data/home/apps/mustrun2sun/1.341947133742569880/main.py", line 170, in get
    feed = client.GetDocList(auth_token=gdata.gauth.AeLoad(users.get_current_user().user_id())) #auth_token=TOKEN
  File "/base/data/home/apps/mustrun2sun/1.341947133742569880/gdata/docs/client.py", line 141, in get_doclist
    auth_token=auth_token, **kwargs)
  File "/base/data/home/apps/mustrun2sun/1.341947133742569880/gdata/client.py", line 635, in get_feed
    **kwargs)
  File "/base/data/home/apps/mustrun2sun/1.341947133742569880/gdata/client.py", line 308, in request
    response, Unauthorized)
Unauthorized: Unauthorized - Server responded with: 401, <HTML>
<HEAD>
<TITLE>Token invalid - Invalid AuthSub token.</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Token invalid - Invalid AuthSub token.</H1>
<H2>Error 401</H2>
</BODY>
</HTML>

我一直在网上到处寻找答案&我没有找到答案

我个人没有与OAuth合作过,但我注意到一些可能(也可能没有)有帮助的事情:

  • 401错误可能是HTTP 401错误,这意味着url是有效的,但需要身份验证。这显然是由于OAuth尝试失败造成的,但将未登录的用户重定向到另一个页面也可能很重要

  • 分配提要变量时出错。auth_token参数仅仅应该是用户名吗

  • 3.你在用电话线

    gdata.gauth.AeLoad(users.get_current_user().user_id())
    
    经常。即使它可能与您的身份验证问题无关,但最好只进行一次查询并将其存储在变量中。然后,当您再次需要它时,可以通过这种方式访问它。它将提高应用程序的速度


    再次,我很抱歉,我没有具体的OAuth经验。我只是试图扫描并找到一些可能会让你走上正确道路的东西。

    我有一个使用OpenID和OAuth获取谷歌联系人的python应用程序引擎应用程序:

    其运行速度为:


    请注意,不再需要Aeoid,因为App Engine提供了支持。

    我刚刚发现浪费了几个小时,如果URL不正确,您也会得到401

    在我的例子中,我是

    .../buzz/v1/activities/@me/@self**?&**alt=json
    
    而不是

    .../buzz/v1/activities/@me/@self**?**alt=json
    
    OAuth+openid组合可能需要Aeoid(或其他openid库)。
    .../buzz/v1/activities/@me/@self**?**alt=json