【问题标题】:Authorize with Tumblr API 2.0使用 Tumblr API 2.0 进行授权
【发布时间】:2014-04-10 13:14:57
【问题描述】:

我正在尝试使用 Tumblr API 发布一些内容,但我什至无法连接到 API!

我有以下 AJAX 调用(此示例的所有键都已删除):

$.ajax({
    type:'GET',
    url: "http://api.tumblr.com/v2/blog/tomjhume.tumblr.com/post",
    dataType:'jsonp',
    data: {
        api_key : "XXXXXX"
    },
    success:function(response){
        console.log(response, arguments);
    }
 });

但是,它返回 "Not Authorized"401。我已经获得了 Tumblr 的授权,他们给了我这个代码:

// Authenticate via OAuth
var tumblr = require('tumblr.js');
var client = tumblr.createClient({
  consumer_key: 'XXXXX',
  consumer_secret: 'XXXXX',
  token: 'XXXXX',
  token_secret: 'XXXXX'
});

// Make the request
client.userInfo(function (err, data) {
    // ...
});

但是,我不确定如何实现它,也找不到教程。如何将$.ajaxfunction 与 Tumblr 给我的功能结合起来?

【问题讨论】:

  • 他们给你的代码是用于 Node.js 的,它是 javascript 的服务器端实现。它不能在浏览器中运行。您不想在客户端使用 API,因为您的 API 密钥将对公众开放。
  • 作为参考,这里是 Tumblr.js 的 repo:github.com/tumblr/tumblr.js

标签: jquery ajax api tumblr


【解决方案1】:

来自Tumblr's API page

API 使用三种不同级别的身份验证,具体取决于 方法。

  • 无:无身份验证。任何人都可以查询该方法。
  • API 密钥:需要 API 密钥。使用您的 OAuth 使用者密钥作为您的 api_key。
  • OAuth:需要符合 OAuth 1.0a 协议的签名请求。

您只能使用您发布的 ajax 代码直接从浏览器进行不需要 OAuth 的调用。

如果您的呼叫需要 OAuth,您需要通过您自己的服务器路由呼叫。例如

  1. 对您的服务器进行 ajax 调用
  2. 在您的服务器上将使用 tumblr.php 从 Tumblr 提取数据
  3. 通过响应 ajax 调用将数据发送回浏览器

【讨论】:

    猜你喜欢
    • 2020-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-13
    • 2019-08-05
    • 2016-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多