使用 HelloJS 向 Tumblr API 发出 OAuth 1.0a 签名请求时遇到问题

Having trouble making a OAuth 1.0a signed request to the Tumblr API using HelloJS

我正在尝试与 Tumblr API 交互以获取关注者列表。我对整个 OAuth 都是全新的,所以我试图根据 https://adodson.com/hello.js/demos/tumblr.html . Unfortunately, the example they give only requires the API key for identification (https://www.tumblr.com/docs/en/api/v2#posts) where as getting the followers needs a signed OAuth request (https://www.tumblr.com/docs/en/api/v2#followers 的演示来模拟我的调用。

我正在使用的电话是:

function getFollowers(blog){
  hello('tumblr').api('blog/'+blog+'/followers/').then(function(r){
    console.log("r", r);
    //Bellow here not really relevant
    var a = r.data.map(function(item){
      return "<h2>"+item.title+"</h2>"+item.body_abstract;
    });
    document.getElementById('blogs').innerHTML = a.join('');
  });
}

这会从代理生成请求 url:

https://auth-server.herokuapp.com/proxy?path=https%3A%2F%2Fapi.tumblr.com%2Fv2%2Fblog%2Fnmlapp.tumblr.com%2Ffollowers%2F%3Fapi_key%3DREDACTED08u%26callback%3D_hellojs_9kvqxi31&access_token=&then=redirect&method=get&suppress_response_codes=truee

和 Tumblr 的 API returns

_hellojs_9kvqxi31({"meta":{"status":401,"msg":"Not Authorized"},"response":[]});

我可以看到登录调用在“查询字符串参数”字段中包含所有 OAuth 信息,而我尝试创建的那个没有,但我不确定包含该信息的正确方法是什么通过helloJS是。

知道了,该函数必须包装在登录方法中。这在另一个示例中显示,但它从 api 对象调用参数的方式让我感到困惑。

function doTheThing(network){
hello( network ).login({force:false}).then( function(r){

  hello('tumblr').api('followers').then(function(r){
    console.log("r", r);

    var a = r.data.map(function(item){
      return "<h2>"+item.title+"</h2>"+item.body_abstract;
    });
    document.getElementById('blogs').innerHTML = a.join('');
  });
  });
  }

//...
tumblr:{
 get: {
   //...
   //This next part needs to be generated dynamically, but you get the idea
    'followers': 'blog/BLOGNAME.tumblr.com/followers',
      }

      callback(p.path);
    }
  },

  post: {
    //...
    'followers': function(p, callback) {
      p.path = 'followers';
      query(p, callback);
    }
  },