0

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

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

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

和 /unlike/ 用于不喜欢该帖子。

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

4

1 回答 1

0

找到答案了!

因此,让我为大家分解一下。我将简要介绍在破解 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 1.0a 协议的完整 OAuth 签名请求。“用户喜欢”一次最多返回 50 条记录。这在 Tumblr API 文档中没有记录。

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

HelloJS通过使用由 oauth_proxy 定义的中间 Web 服务解决了这个问题。该服务从数据库中查找密钥并执行配置 access_token 所需的握手。在 OAuth1 的情况下,Web 服务还会对后续的 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/

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

约翰

于 2015-04-07T18:09:46.780 回答