带参数的google api给出未知的授权标题 [英] google api with params gives unknown authorization header

查看:103
本文介绍了带参数的google api给出未知的授权标题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这个问题,通常api入口点可以正常工作:

https://www.google.com/analytics/feeds/accounts/default



但是当我添加这样的参数:



https://www.google.com/analytics/feeds/accounts/default?max-results=50



然后失败。这是互动的一部分,如果有人可以说出什么是错的:

  GET& https%3A%2F%2Fwww.google。 com%2Fanalytics%2Ffeeds%2Faccounts%2Fdefault& oauth_consumer_key%3DCONSUMERKEY%26oauth_nonce%3D88526211463343710%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1321044173%26oauth_token%3DCONSUMERTOKEN%26oauth_version%3D1.0 
{host:'www.google.com ',
path:'/ analytics / feeds / accounts / default?max-results = 25',
method:'GET',
headers:{Authorization:'OAuth oauth_token =CONSUMERTOKEN ,oauth_timestamp =1321044173,oauth_nonce =88526211463343710,oauth_consumer_key =CONSUMERKEY,oauth_signature_method =HMAC-SHA1,oauth_version =1.0,oauth_signature =s%2Bob3FyVFpwRsu4x7C%2FwmkwbnDY%3D'}}
状态:401
标题:{www-authenticate:GoogleLogin realm = \http://www.google.com/accounts/ClientLogin\,service = \analytics\ ,content-type:text / html; charset = UTF-8,date:Fri,11 2011年11月20:42:56 GMT,expires:2011年11月11日星期五20:42:56 GMT,cache-control:private,max-age = 0,x-content-type -options : nosniff X框选项: SAMEORIGIN, X-XSS-保护: 1; mode = block,server:GSE,connection:close}
响应:未知授权标题

这个问题在这里和那里有好几次不同的变化,但我无法找到迄今为止解决的根本问题......

解决方案

事实证明,Google需要在签名库字符串上使用url参数: GET& https%3A%2F%2Fwww.google .com%2Fanalytics%2Ffeeds%2Faccounts%2Fdefault& oauth_consumer_key%3DCONSUMERKEY%26oauth_nonce%3D88526211463343710%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1321044173%26oauth_token%3DCONSUMERTOKEN%26oauth_version%3D1.0




$ b

GET& https%3A%2F%2Fwww.google.com%2Fanalytics%2Ffeeds%2Faccounts%2Fdefault& oauth_consumer_key%3DCONSUMERKEY%26oauth_nonce%3D88526211463343710% 26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1321044173%26oauth_token%3DCONSUMERTOKEN%26oauth_version%3D1.0&安培;最大结果= 50



当然按照字母顺序,所有其他参数也应该如此。这解决了我的问题。


I have this problem, that usually api entry point works fine:

https://www.google.com/analytics/feeds/accounts/default

but when I add parameters like:

https://www.google.com/analytics/feeds/accounts/default?max-results=50

then it fails. This is the part of the interaction if someone can tells whats wrong:

GET&https%3A%2F%2Fwww.google.com%2Fanalytics%2Ffeeds%2Faccounts%2Fdefault&oauth_consumer_key%3DCONSUMERKEY%26oauth_nonce%3D88526211463343710%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1321044173%26oauth_token%3DCONSUMERTOKEN%26oauth_version%3D1.0
{ host: 'www.google.com',
  path: '/analytics/feeds/accounts/default?max-results=25',
  method: 'GET',
  headers: { Authorization: 'OAuth oauth_token="CONSUMERTOKEN", oauth_timestamp="1321044173", oauth_nonce="88526211463343710", oauth_consumer_key="CONSUMERKEY", oauth_signature_method="HMAC-SHA1", oauth_version="1.0", oauth_signature="S%2Bob3FyVFpwRsu4x7C%2FwmkwbnDY%3D"' } }
STATUS: 401
HEADERS: {"www-authenticate":"GoogleLogin realm=\"http://www.google.com/accounts/ClientLogin\", service=\"analytics\"","content-type":"text/html; charset=UTF-8","date":"Fri, 11 Nov 2011 20:42:56 GMT","expires":"Fri, 11 Nov 2011 20:42:56 GMT","cache-control":"private, max-age=0","x-content-type-options":"nosniff","x-frame-options":"SAMEORIGIN","x-xss-protection":"1; mode=block","server":"GSE","connection":"close"}
response: Unknown authorization header

This is asked several times over here and there with different variations, but I cant find the underlying problem solved so far...

解决方案

It turns out, that Google requires url params on signature base string:

GET&https%3A%2F%2Fwww.google.com%2Fanalytics%2Ffeeds%2Faccounts%2Fdefault&oauth_consumer_key%3DCONSUMERKEY%26oauth_nonce%3D88526211463343710%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1321044173%26oauth_token%3DCONSUMERTOKEN%26oauth_version%3D1.0

->

GET&https%3A%2F%2Fwww.google.com%2Fanalytics%2Ffeeds%2Faccounts%2Fdefault&oauth_consumer_key%3DCONSUMERKEY%26oauth_nonce%3D88526211463343710%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1321044173%26oauth_token%3DCONSUMERTOKEN%26oauth_version%3D1.0&max-results=50

In alphabetical order of course as all other params should be too. This fixed my problem.

这篇关于带参数的google api给出未知的授权标题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆