Tumblr Like <a> link 没有弹出身份验证

No Authentication Pop up with Tumblr Like <a> link

截至目前,我正在构建一个自定义 Tumblr 页面,该页面基本上将 post 内容聚合到 1 个页面中。

问题是,我们不能使用 Tumblr 标签来点赞,我们已经成功地让 Reblog 工作,但是每当我尝试使用 hrefed 到这个模式时,

'http://www.tumblr.com/like/'+oath+'?id='+id'

and /unlike/ 表示不喜欢 post.

除了访问被拒绝的页面,我什么也得不到。我不应该至少看到某种身份验证弹出窗口吗?不知道在这里还能做什么。需要让这个 LIKE 功能正常工作,并且使用 Tumblr {like button} 不是一个选项,因为我们没有使用 {posts block} 而是通过 JSON API.

找到答案了!

所以让我为大家分解一下.. 我只是要 运行 列出我在 Tumblr API 上黑客攻击时发现的所有问题和注意事项。在大多数情况下,您不会在互联网上找到任何这些答案。如果您这样做,它们很可能只是我对自己发布到论坛的问题的回答。

  1. Tumblr 应用程序由托管的任何页面模板定义 无论是否通过 Tumblr,都将使用 Tumblr API。应用 必须在 Tumblr 注册: https://www.tumblr.com/oauth/apps

  2. 所有 Tumblr 应用程序在创建时都会获得一组密钥 访问 Tumblr API。 OAuth 消费者密钥又名 API 密钥秘密密钥

  3. Tumblr API主要分为两类 方法。第三个被“标记”,用于拉取标记的帖子 来自博客或用户。

  4. 只需要消费者提交的“博客方法” 钥匙。 “用户方法”需要完整的 OAuth 签名请求 符合 OAuth 1.0a 协议。 “用户喜欢”returns 最多 一次50条记录。这在 Tumblr 中没有记录 API 文档。

目前,Tumblr API 文档指导开发人员使用众多开源 API 客户端之一。但是,所有这些客户端似乎都是服务器端应用程序。对于只支持 OAuth1 或 OAuth2 的提供者,例如 Tumblr,需要使用 Explicit Grant 的 OAuth1 或 OAuth2,身份验证流程需要使用可能不会在浏览器中公开的密钥进行签名。

HelloJS 通过使用 oauth_proxy 定义的中间网络服务解决了这个问题。该服务从数据库中查找秘密并执行提供 access_token 所需的握手。在 OAuth1 的情况下,网络服务还签署后续 API 请求。

HelloJS - http://adodson.com/hello.js/ 是唯一可用且免费的客户端 Oauth 库。有许多服务作为代理按每 api 次点击收费。 HelloJS OAuth 代理位于:https://auth-server.herokuapp.com/

使用以下社交帐户凭据之一登录 OAuth 代理:Google、Windows Live、Facebook 或 Yahoo。 OAuth 代理充当安全的“中间人”,允许安全存储“密钥”,同时仍允许客户端 OAuth 身份验证。

HelloJS 有一个特殊的 Tumblr 模块 - http://adodson.com/hello.js/demos/tumblr.html

HelloJS 利用新的 Javascript Promises 异步函数规范 - https://www.promisejs.org/

Javascript Promises 在传递从异步 AJAX 调用接收的对象时有一些独特的规则。 一切都在回调中完成。 jQuery 所说的承诺实际上与其他人所说的承诺完全不同。 希望这有助于将来的 Tumblr 集成。

约翰