Closed. 这个问题不符合堆栈溢出指南 /help/closed-questions 。目前不接受答案。
我正在制作一个网站,该网站制作分组中人数的图表(来自 www.codecamy.com)。
为了实现这一目标,我制定了一个计划。
我将有一个服务器来轮询 CodeCademy 组页面(http://www.codecademy.com/groups http://www.codecademy.com/groups ) 每 30 秒一次,并从该 HTML 中检索所需的信息。
然后,当客户端连接到我的网站时,服务器将向客户端提供该信息,然后客户端将使用http://www.chartjs.org/docs/ http://www.chartjs.org/docs/ or http://www.jqplot.com/ http://www.jqplot.com/ 根据该信息绘制图表。
然而,有一个大问题。如果您单击了 CodeCademy 中的任何链接,您就会意识到您需要拥有一个帐户才能真正查看该网站。这可以是 Facebook 帐户、Google 帐户或 Twitter 帐户。
所以,简单来说,如果我想访问包含有关组的信息的页面,我需要为我的服务器拥有一个 Bot 帐户,并且我需要教我的服务器登录该帐户。
因此,我在 gmail 上创建了一个名为 codecademybot 的虚拟帐户,我希望我的服务器使用此帐户登录 codecademy,以便它可以看到该页面的内容。
通过遵循将我连接到 google+ 的快速入门 Python 教程 https://developers.google.com/+/quickstart/python 我现在也有了与之交互的代码。
然而,尽管如此,我仍然对如何与网站交互一无所知。我有以下问题:
如何检测我是否登录了我的谷歌帐户?
我如何将自己连接到该帐户以便访问该页面?
有登录该网站的特殊链接吗?
我很迷茫,希望得到任何可能的帮助。
不要让所有的代码示例和操作指南让您误入歧途。它们适用于更复杂的情况。
这不是oauth2授权,是oauth2认证
您不是拥有 clientID 和密钥的客户端。 Codecademy 是具有 clientID 和密钥的客户端。您的 codecademybot 帐户就是用户。
这意味着您只需要自动化普通用户登录 Codecademy 时执行的操作即可。使用侦听的开发工具(IE 开发工具、FireBug 等)在浏览器中播放几次该交互,并查看 HTTP 请求的对话。
这就是您希望效仿的。
据我所见,
对话通过向以下地址发送请求开始http://codecademy.com/auth/google_oauth2 http://codecademy.com/auth/google_oauth2 .
请求被转发到 google 的 https url
如果我之前登录过 google,则会发送一些 cookie 并进行身份验证。请求被发送回 codecademy 的redirect_urlhttp://www.codecademy.com/auth/google_oauth2/callback http://www.codecademy.com/auth/google_oauth2/callback 以 oauth2 身份验证代码作为参数。
据说是 codecademy 和 google chat,因为这大约需要三秒钟。
他们同意我就是我和两块饼干(remember_user_token
and _session_id
)在我转发到之前在我的浏览器中进行设置http://www.codecademy.com/ http://www.codecademy.com/
我认为最后一点很有趣。您可以使用浏览器手动登录,监听对话并将这两个 cookie 复制到您的自动代码中。看看它们是否足以作为身份验证令牌并允许您从网站获取数据。
如果没有,那么我强烈推荐@CrisBee21 的答案。我们希望 pyCurl 能够很好地模拟浏览器来为您进行对话。
另一件事是,当我浏览网站时,我看到一个 REST api 请求,即http://www.codecademy.com/api/v1/notifications/ http://www.codecademy.com/api/v1/notifications/ userid /unread_count?authentication_token=一些令牌
冲浪至http://www.codecademy.com/api/v1/users/ http://www.codecademy.com/api/v1/users/ userid /?身份验证令牌=代币 给我更多关于我自己的信息
http://www.codecademy.com/api/v1/users/ http://www.codecademy.com/api/v1/users/ userid /组?身份验证令牌=代币 给我我所在的组。
如果您有更多关于 codecademy REST api 的文档,您可以尝试从那里获取。我找不到任何文档,我一边做一边弥补。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)