2012-01-19 118 views
0

我正在创建的网站可以将您的帐户与您的YouTube帐户相关联。从本地主机,这完美的作品,但从网站,这是step1tuts.appspot.com,它不起作用。当我将用户重定向到我的网站的身份验证页面时,我收到以下消息:youtube oauth在本地主机上工作,但不能从生产上工作

您所请求的页面无法显示。另一个网站是 ,要求访问您的Google帐户,但发送了格式错误的 请求。当您收到此讯息以通知他们错误时,请联系您尝试使用的网站。

处理此认证的代码如下所示:

client = youtube.get_client() 

client.developer_key = 'AI39si759T7YcZ4E3XvICpZr3cGwQ0Ev4AjwyJrVSS6AW6NUc7_t10DX1JsngWzU4YoGjpsjAUTejav0hgXp9vDuM7a83tDXzQ' 
client.client_id = 'step1tuts.com' 

domain = 'http://' + os.environ['HTTP_HOST']+"/user/youtube_token" 
scope = 'http://gdata.youtube.com' 
url = client.GenerateAuthSubURL(domain,scope,secure=False,session=True) 
self.redirect(str(url)) 
return 

我重定向到,在/ AUTH_TOKEN然后结束URL处理它从YouTube的回来的道理,但这个错误发生在这里。

只是为了清楚起见,youtube.get_client方法是一个我开发的重用使得客户端的AppEngine准备的过程:该代码是:

def get_client(): 
    client = gdata.youtube.service.YouTubeService() 
    run_on_appengine(client) 

    client.developer_key = 'AI39si759T7YcZ4E3XvICpZr3cGwQ0Ev4AjwyJrVSS6AW6NUc7_t10DX1JsngWzU4YoGjpsjAUTejav0hgXp9vDuM7a83tDXzQ' 
    client.client_id = 'step1tuts.com' 
    user = users.get_current_user() 
    if(user and user.yt_token): 
     client.SetAuthSubToken(user.yt_token) 
    return client 

虽然粘贴在这段代码中,我注意到我重复了我给开发人员密钥的部分。我不认为这是问题所在,但是我会从代码的验证部分中删除它,然后看看会发生什么。

该问题必须通过观看用户重定向到的URL来实现,因此只需要一些额外的信息,当我在使用SDK的本地计算机上使用应用程序时,重定向到的url,与它的工作原理:

http://www.youtube.com/auth_sub_request?scope=http%3A%2F%2Fgdata.youtube.com&session=1&next=http%3A%2F%2Flocalhost%3A8081%2Fuser%2Fyoutube_token%3Fauth_sub_scopes%3Dhttp%253A%252F%252Fgdata.youtube.com&secure=0&hd=default

这我重定向到,当我使用相同的代码上生产的网址:

http://www.youtube.com/auth_sub_request?scope=http%3A%2F%2Fgdata.youtube.com&session=1&next=http%3A%2F%2Fstep1tuts.appspot.com%2Fuser%2Fyoutube_token%3Fauth_sub_scopes%3Dhttp%253A%252F%252Fgdata.youtube.com&secure=0&hd=default

回答

1

有趣。除此之外,其他所有网址都可以使用。可能是YouTube上的一个bug?我刚刚添加了一个'。'在你的域名的末尾,这个请求似乎已经过去了。也许你可以尝试吗?

http://www.youtube.com/auth_sub_request?scope=http%3A%2F%2Fgdata.youtube.com&session=1&next=http%3A%2F%2Fstep1tuts.appspot.com.%2Fuser%2Fyoutube_token%3Fauth_sub_scopes%3Dhttp%253A%252F%252Fgdata.youtube.com&secure=0&hd=default

+0

我会尝试,thx。 – bigblind

+0

这是有点hacky,但它的作品。 – bigblind

相关问题