0

我正在尝试使用 youtube 分析 api 获取数据。获得 access_token 后,我可以使用它发出请求并获取用户信息,这是 python 请求:

newurl='https://gdata.youtube.com/feeds/api/users/default?'
token={'v':'2.1', 'access_token':access_token}
urll = newurl + urllib.urlencode(token)
result = urllib.urlopen(newurl + urllib.urlencode(token)).read()

然后,我尝试使用相同的 access_token 发出第二个请求,如下所示:

newurl2='https://www.googleapis.com/youtube/analytics/v1/reports'
newtoken={'v':'2.1', 
      'start-date':'2010-10-10',
      'end-date': ###current time###,
      'metrics':'views,comments,likes,dislikes,shares',
      'ids':'channel==' ###user_id###,
      'access_token':access_token}
result = urllib.urlopen(newurl2 + urllib.urlencode(newtoken)).read()

但在这里我得到了一个错误:

"code": 401,
"message": "Invalid Credentials"

当我使用 PHP 时,我可以成功发出第二个请求,但我无法弄清楚为什么使用 python 会出错,有人可以帮我吗?谢谢!!

4

2 回答 2

0

我强烈建议为此使用 python gapi 客户端库,因为它将为您处理所有 oauth 流程。

我对 v=2.1 参数感到困惑 - 分析 API 刚刚达到 V1,并且没有 v API。我没有尝试将 V2 数据 API 与新的分析 API 一起使用,V3 数据 API 和 V1 分析 API 非常相似,我个人会坚持一起使用它们。

最后,我会检查您获得了哪些 oauth2 范围的访问令牌 - 数据和分析 API 将需要不同的范围(您需要“https://www.googleapis.com/auth/yt-analytics.readonly”分析)

于 2012-11-19T18:26:49.893 回答
0

我不能代表 API 调用,但看起来你缺少一个“?” 在 newurl2 的末尾。

于 2012-11-19T02:44:09.763 回答