GoogleアカウントのユーザーAPIにログインせずにYouTubeのセッショントークンをアップグレードすることができません。

StackOverflow https://stackoverflow.com/questions/2803996

質問

私のユーザーは、Googleを使って自分のアプリケーションにログインしていない場合は、私はGoogleのアプリケーションエンジンにトークン私のセッションをアップグレードする問題を抱えていますが、ユーザAPIを占めています。ユーザーが現在ログインしている場合、それは完全に機能します。

私はこのエラーを取得していない場合:

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 

ここに私の最良の選択肢は何ですか?私は、ユーザーがGoogleにログインする必要がありますする必要はありませんAPIを占め、次にユーチューブサイトでは、動画をアップロードします。

ここでトークンを更新するための私の方法があります:

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 = gdata.youtube.service.YouTubeService()

私は、認証側で何かが欠けていますが、私は、何を参照するおかげで見えることはできませんかなり確信して!

役に立ちましたか?

解決

私が使用してこれを解決します:

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

が、

でアップロードフォームを構築するときに、これは別の問題を提起しました
GetFormUploadToken

私は受け取ります:

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': ''}

他のヒント

これを試してみてください

new_token = client.UpgradeToOAuthAccessToken(
    gdata.auth.extract_auth_sub_token_from_url(self.request.url)
client.SetOAuthToken(new_token)
client.GetFormUploadToken(my_video_entry)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top