Frage

Ich habe Probleme beim Upgrade meiner Session-Token in Google App Engine, wenn meine Benutzer nicht in meine Anwendung mit dem Google angemeldet ist, Benutzerkonten api. Wenn der Benutzer zur Zeit in dann angemeldet ist, es funktioniert perfekt.

Wenn nicht, dann ich diese Störung erhalten:

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/5th-anniversary/1.341853888797531127/main.py", line 78, in get
    u.upgradeToken(self)
  File "/base/data/home/apps/5th-anniversary/1.341853888797531127/upload.py", line 47, in upgradeToken
    client.UpgradeToSessionToken()
  File "/base/data/home/apps/5th-anniversary/1.341853888797531127/gdata/service.py", line 903, in UpgradeToSessionToken
    raise NonAuthSubToken
NonAuthSubToken 

Was sind meine besten Optionen hier? Ich will nicht der Benutzer haben, in die Google-Konten einzuloggen api und dann die YouTube-Website ein Video hochladen.

Hier ist meine Methode für das Token zu aktualisieren:

def upgradeToken(data,self):
    get = self.request.GET
    authsub_token = get['token']

    gdata.alt.appengine.run_on_appengine(client)

    client.SetAuthSubToken(authsub_token)
    client.UpgradeToSessionToken()

Client ist einfach client = gdata.youtube.service.YouTubeService()

ziemlich sicher, ich bin etwas auf der Authentifizierungsseite fehlt, aber ich kann nicht zu sehen scheinen, was, danke!

War es hilfreich?

Lösung

Ich löste dies durch die Verwendung:

client.UpgradeToSessionToken(gdata.auth.extract_auth_sub_token_from_url(self.request.url))

aber eine andere Frage aufgeworfen beim Bau der Upload-Formular mit

GetFormUploadToken

i erhalten:

Traceback (most recent call last):
  File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 513, in __call__
    handler.post(*groups)
  File "/base/data/home/apps/5th-anniversary/1.341859541699944556/upload.py", line 106, in post
    form = u.getUploadForm(self,title,description,keywords)
  File "/base/data/home/apps/5th-anniversary/1.341859541699944556/upload.py", line 65, in getUploadForm
    response = client.GetFormUploadToken(video_entry,'http://gdata.youtube.com/action/GetUploadToken')
  File "/base/data/home/apps/5th-anniversary/1.341859541699944556/gdata/youtube/service.py", line 716, in GetFormUploadToken
    raise YouTubeError(e.args[0])
YouTubeError: {'status': 401L, 'body': '<HTML>\n<HEAD>\n<TITLE>User authentication required.</TITLE>\n</HEAD>\n<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\n<H1>User authentication required.</H1>\n<H2>Error 401</H2>\n</BODY>\n</HTML>\n', 'reason': ''}

Andere Tipps

Versuchen Sie diese:

new_token = client.UpgradeToOAuthAccessToken(
    gdata.auth.extract_auth_sub_token_from_url(self.request.url)
client.SetOAuthToken(new_token)
client.GetFormUploadToken(my_video_entry)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top